En Oracle, el ROUND(number) La función devuelve un número redondeado a un número dado de lugares decimales.
De manera predeterminada, redondea el número a cero lugares decimales, pero puede proporcionar un argumento opcional que especifique el número de lugares decimales a usar.
Oracle también tiene un ROUND(date) sintaxis, que se utiliza en las fechas. Este artículo es únicamente sobre el ROUND(number) sintaxis, que se utiliza en los números.
Sintaxis
La sintaxis es así:
ROUND(n [, integer ])
Donde n puede ser cualquier tipo de dato numérico o cualquier tipo de dato no numérico que se pueda convertir implícitamente a un tipo de dato numérico, y integer es un entero opcional que especifica el número de lugares decimales para redondear n a.
Ejemplo
He aquí un ejemplo:
SELECT ROUND(7.85)
FROM DUAL; Resultado:
ROUND(7.85)
______________
8 Valor negativo
Cambiarlo a un valor negativo produce el siguiente resultado:
SELECT ROUND(-7.85)
FROM DUAL; Resultado:
ROUND(-7.85)
_______________
-8 Segundo Argumento
Aquí hay un ejemplo de proporcionar un segundo argumento:
SELECT ROUND(7.85, 1)
FROM DUAL; Resultado:
ROUND(7.85,1)
________________
7.9 En este caso, especifiqué que el resultado debe redondearse a un decimal.
Aquí hay otro ejemplo con una mayor cantidad de lugares decimales:
SELECT ROUND(3.14159265359, 4)
FROM DUAL; Resultado:
ROUND(3.14159265359,4)
_________________________
3.1416 Redondeo negativo
También puede especificar un valor negativo para el segundo argumento. Al hacerlo, se redondea el número a la izquierda del punto decimal:
SELECT ROUND(75631, -3)
FROM DUAL; Resultado:
ROUND(75631,-3)
__________________
76000 Redondeo de argumentos no numéricos
Esto es lo que sucede cuando tratamos de redondear un argumento no numérico que no se puede convertir a un tipo de datos numérico:
SELECT ROUND('Bruce')
FROM DUAL; Resultado:
Error starting at line : 1 in command -
SELECT ROUND('Bruce')
FROM DUAL
Error report -
ORA-01722: invalid number Sin embargo, podemos redondear fechas; hay una versión de fecha de esta función que nos permite redondear fechas.
Valores nulos
Intentando redondear null devuelve null y tratando de redondear un número por null también da como resultado null :
SET NULL 'null';
SELECT
ROUND(null),
ROUND(null, 2),
ROUND(2.345, null)
FROM DUAL; Resultado:
ROUND(NULL) ROUND(NULL,2) ROUND(2.345,NULL)
______________ ________________ ____________________
null null null
De forma predeterminada, SQLcl y SQL*Plus devuelven un espacio en blanco cada vez que null ocurre como resultado de un SQL SELECT declaración.
Sin embargo, puede usar SET NULL para especificar una cadena diferente a devolver. Aquí especifiqué que la cadena null debe ser devuelto.
Recuento de argumentos incorrecto
Llamando a ROUND() sin pasar ningún argumento devuelve un error:
SELECT ROUND()
FROM DUAL; Resultado:
Error starting at line : 1 in command - SELECT ROUND() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Y pasar el número incorrecto de argumentos da como resultado un error:
SELECT ROUND(1.34, 2, 3)
FROM DUAL; Resultado:
Error starting at line : 1 in command - SELECT ROUND(1.34, 2, 3) FROM DUAL Error at Command Line : 1 Column : 23 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: