ROUND en SQL Server

Función Round en SQL Server



La función Round nos permite redondear un valor numérico a un número específico y preciso según la cantidad de decimales que contenga.

La sintaxis para la función Round es la siguiente:

ROUND(Expresion_Numerica,Longitud,Funcion)


Argumentos de la función Round

Expresion_Numerica: Nos indica el tipo de dato el cual puede ser de tipo numérico exacto o numérico aproximado.

Longitud: hace referencia a la precisión a la cual vamos a realizar el redondeo de la expresión numérica. Los tipos de datos admitidos en la longitud son tinyint, smallint e int.

Si la longitud es un número positivo, entonces la expresion_numerica es redondeada al número de posiciones establecidos en la longitud. Por el contrario si la longitud es un número negativo, la expresion_numerica se redondea por el lado izquierdo del punto decimal según como se haya especificado en la longitud.

Función: Acá especificamos el tipo de operación a realizar y esta debe ser tinyint, smallint o int. Al omitir la función se nos establecerá un valor predeterminado el cual es cero y se redondea, por último si el valor especificado es diferente de cero la expresion_numerica se trunca.

Nota Importante


Si la longitud del valor numérico a redondear es negativa y mayor al número de dígitos antes del punto decimal, la función ROUND nos devolverá el resultado en cero.

Para ejemplificar lo antes mencionado, supongamos que necesitamos redondear:
ROUND(425.49, -1) el resultado que vamos a obtener será 430.00


Ejemplo de Redondeo en SQL Server


A continuación vamos a crear una serie de ejemplos utilizando la función Round.
para el primer ejemplo vamos redondear la cantidad 750.88, para eso vamos hacer uso de la siguiente Query:

SELECT ROUND(750.88,1) AS NUMERO_REDONDEADO

Ahora vamos a ejecutar dicho query en SQL Server Management Studio:


Nos va realizar el redondeo y su estimación en 1 posición decimal por lo que el resultado que veremos es 750.90. 

Veamos otro ejemplo redondeando 285.596 a 1,2, 3 posiciones decimales. La Query que vamos a crear para mostrar este resultado es la siguiente. Como nota en la misma consulta Select podemos redondear el mismo número, lo único que debemos hacer es separarlo mediante coma(,) y hacer uso de la palabra reservada AS  para renombrar la columna.

SELECT ROUND(285.596,1) AS REDONDEADO_1_POSICION,
ROUND(285.596,2) AS REDONDEANDO_2_POSICIONES,
ROUND(285.596,3) AS REDONDEANDO_3_POSICIONES 

Ahora ejecutemos la Query en SQL Server Management Studio:


Si observamos hemos obtenido diferentes resultado de redondeo ya que la estimación en la posición decimal varia.


Truncar decimales en sql

Como mencionamos al inicio del artículo si especificamos un valor diferente de cero la expresión numérica se trunca por el contrario si el valor es igual a cero la expresión numérica se redondea, veamos un ejemplo en el cual vamos a redondear y a truncar la expresión numérica 125.78. la Query es la siguiente.

SELECT ROUND(125.78,0) AS REDONDEO
SELECT ROUND(125.78,0,1) AS TRUNCANDO 

Ejecutemos la Query en SQL Server Management Studio para ver el resultado:


Al observar la figura podemos ver que la primera expresión se redondeo a 126 y la segunda se truncó ya que el valor es diferente de cero.

Redondear una columna de una tabla en sql server

Ya aprendimos a redondear expresiones numéricas en SQL Server, ahora vamos a ver un ejemplo de cómo redondear una columna de una tabla en SQL. Para eso vamos hacer uso de una tabla llamado "SivProductoPrecio", de la cual vamos a redondear la columna que contiene los precios de compras mayores o iguales a 40, la Query será la siguiente.

SELECT PrecioCompra FROM SivProductoPrecio 
WHERE PrecioCompra >= 40
ORDER BY PrecioCompra ASC

SELECT ROUND(PrecioCompra,1) FROM SivProductoPrecio 
WHERE PrecioCompra >= 40 
ORDER BY PrecioCompra ASC

Por ultimo vamos a ejecutar el código en Management Studio de SQL Server.


Al ejecutar la consulta podemos observar que los precios de compra de los productos se redondearon en una posición decimal.

En este artículo hemos estudiado la función Round muy importante para realizar redondeos de expresiones numérica o columnas de una tabla.  


Publicar un comentario

0 Comentarios