sql >> Base de Datos >  >> RDS >> Oracle

Función CEIL() en Oracle

En Oracle, el CEIL() la función devuelve el entero más pequeño que es mayor o igual que su argumento.

Sintaxis

La sintaxis es así:

CEIL(n)

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.

Ejemplo

He aquí un ejemplo:

SELECT CEIL(7.15)
FROM DUAL;

Resultado:

   CEIL(7.15) 
_____________ 
            8

Pasar un valor negativo produce el siguiente resultado:

SELECT CEIL(-7.15)
FROM DUAL;

Resultado:

   CEIL(-7.15) 
______________ 
            -7 

Comparado con ROUND()

El CEIL() la función es diferente a ROUND() función. El ROUND() la función redondearía el número hacia abajo en algunos casos, mientras que CEIL() siempre devuelve el valor entero más pequeño mayor o igual que su argumento.

SELECT 
    CEIL(7.15),
    ROUND(7.15)
FROM DUAL;

Resultado:

   CEIL(7.15)    ROUND(7.15) 
_____________ ______________ 
            8              7 

Además, ROUND() nos permite especificar el número de decimales a redondear:

SELECT 
    CEIL(7.15),
    ROUND(7.15, 1)
FROM DUAL;

Resultado:

   CEIL(7.15)    ROUND(7.15,1) 
_____________ ________________ 
            8              7.2 

Argumento no numérico

El argumento puede ser cualquier tipo de datos numéricos o cualquier tipo de datos no numéricos que se pueda convertir implícitamente en un tipo de datos numéricos.

Esto es lo que sucede cuando proporcionamos un argumento no numérico que no se puede convertir a un tipo de datos numérico:

SELECT CEIL('Oops!')
FROM DUAL;

Resultado:

Error starting at line : 1 in command -
SELECT CEIL('Oops!')
FROM DUAL
Error report -
ORA-01722: invalid number

Valores nulos

Pasando null a CEIL() devuelve null :

SET NULL 'null';

SELECT CEIL(null)
FROM DUAL;

Resultado:

   CEIL(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 CEIL() sin pasar ningún argumento devuelve un error:

SELECT CEIL()
FROM DUAL;

Resultado:

Error starting at line : 1 in command -
SELECT CEIL()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

Y pasar el número incorrecto de argumentos da como resultado un error:

SELECT CEIL(1, 2)
FROM DUAL;

Resultado:

Error starting at line : 1 in command -
SELECT CEIL(1, 2)
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

Oracle también tiene un FLOOR() función que devuelve el entero más grande igual o menor que su argumento.