sábado, 16 de mayo de 2015

Funciones matemáticas en SQL Server



  • ABS
Obtiene el valor Absoluto

SELECT ABS(-4) AS 'VALOR ABSOLUTO'


  • CEILING
Devuelve el entero más pequeño mayor o igual que la expresión numérica dada.

SELECT CEILING(5.4) AS 'CEILING'


  • FLOOR
Devuelve el entero más grande menor o igual que la expresión numérica dada.

SELECT FLOOR(5) AS 'FLOOR'


  • POWER
Devuelve el valor de la expresión indicada elevada a la potencia especificada.

SELECT POWER(3,2) AS '3 ELEVADO A 2'


  • RAND
Devuelve un valor float aleatorio de 0 a 1.
Las llamadas repetitivas de RAND() en una única consulta producirán el mismo valor.

SELECT RAND(6) AS 'ALEATORIO'

SELECT RAND(5) AS 'ALEATORIO'

SELECT RAND(4) AS 'ALEATORIO'


Rand sobre los milisegundos actuales

SELECT RAND(DATEPART(MS,GETDATE())) AS 'ALEATORIO'

SELECT RAND(999999999) AS 'ALEATORIO'


  • ROUND
Devuelve una expresión numérica, redondeada a la longitud o precisión especificada.

Round(Numero, Redondeo del Número)

ROUND siempre devuelve un valor. Si length es un valor negativo y mayor que el número de dígitos anteriores al separador decimal, ROUND devuelve 0.

SELECT ROUND(123.4567,2)

SELECT ROUND(123.4567,-2)

SELECT ROUND(123.4567,0)

SELECT ROUND(123.4567,-3)


  • SIGN
Devuelve el signo positivo (+1), cero (0) o negativo (-1) de la expresión especificada.
Dice el valor negativo, positivo o neutro (0) del valor especificado

SELECT SIGN(-3)

SELECT SIGN(3)

SELECT SIGN(0)


  • SQUARE
Devuelve el cuadrado de la expresión especificada.

SELECT SQUARE(4) AS 'CUADRADO'


  • SQRT
Devuelve la raíz cuadrada de la expresión especificada.

SELECT SQRT(4) AS [RAIZ CUADRADA]



Espero haber ayudado en algo. Hasta la próxima oportunidad!








6 comentarios:

  1. Respuestas
    1. Hola Nicolás Nava Bello, gracias por la visita y el aporte de tu comentario.
      Éxitos! Hasta cualquier instante!

      Eliminar
  2. Buenos días,
    Necesito pasar a sql esta función matemática:
    y = -2E-10x6 + 8E-08x5 - 1E-05x4 + 0,0006x3 - 0,0165x2 + 0,2428x + 1,2811

    Creo que tengo que usar las funciones EXP() y POWER() pero no sé bien como.
    Gracias de antemano.

    ResponderEliminar
    Respuestas
    1. Hola Anónimo, gracias por la visita y el aporte de tu comentario.

      DECLARE @X NUMERIC(9,2) = 1
      DECLARE @X2 NUMERIC(9,2) = 1
      DECLARE @X3 NUMERIC(9,2) = 2
      DECLARE @X4 NUMERIC(9,2) = 4
      DECLARE @X5 NUMERIC(9,2) = 2
      DECLARE @X6 NUMERIC(9,2) = 1
      DECLARE @Y NUMERIC(18,2) = 3
      SET @Y = (POWER(-2,-10) * @X6) + (POWER(8,-8) * @X5) - (POWER(1,-5) * @X4) + (0.0006 * @X3) - (0.0165 * @X2) + (0.2428 * @X) + 1.2811
      SELECT @Y

      Los mejores deseos! Hasta cualquier momento.

      Eliminar
  3. Buen dia solicito apoyo con el count. Agrupado si lo hago una vez excelente pero si quiero mostrar otra columna me da error
    Por ejemplo cuento cuantas veces existe un id de un equipo. Luego de esto este id cuente cuantas veces es mayor que el visitante..dos count agrupados por el id equipo si lo hago solo un count para una columna bien pero si quiero agregar otro count para una nueva columna error

    ResponderEliminar
    Respuestas
    1. Hola Anónimo, gracias por la visita y el aporte de tu consulta.
      Sería bueno que compartas el script para entender mejor lo que estás haciendo y poder ayudarte.
      Éxitos! Hasta cualquier instante.

      Eliminar

       
free counters

Páginas vistas en total según Google