In Oracle, il CEIL()
La funzione restituisce il numero intero più piccolo maggiore o uguale al suo argomento.
Sintassi
La sintassi è questa:
CEIL(n)
Dove n
può essere qualsiasi tipo di dati numerico o qualsiasi tipo di dati non numerico che può essere convertito in modo implicito in un tipo di dati numerico.
Esempio
Ecco un esempio:
SELECT CEIL(7.15)
FROM DUAL;
Risultato:
CEIL(7.15) _____________ 8
Il passaggio di un valore negativo produce il seguente risultato:
SELECT CEIL(-7.15)
FROM DUAL;
Risultato:
CEIL(-7.15) ______________ -7
Rispetto a ROUND()
Il CEIL()
la funzione è diversa da ROUND()
funzione. Il ROUND()
funzione arrotonda il numero per difetto in alcuni casi, mentre CEIL()
restituisce sempre il valore intero più piccolo è maggiore o uguale al suo argomento.
SELECT
CEIL(7.15),
ROUND(7.15)
FROM DUAL;
Risultato:
CEIL(7.15) ROUND(7.15) _____________ ______________ 8 7
Inoltre, ROUND()
ci consente di specificare il numero di cifre decimali da arrotondare a:
SELECT
CEIL(7.15),
ROUND(7.15, 1)
FROM DUAL;
Risultato:
CEIL(7.15) ROUND(7.15,1) _____________ ________________ 8 7.2
Argomento non numerico
L'argomento può essere qualsiasi tipo di dati numerico o qualsiasi tipo di dati non numerico che può essere convertito in modo implicito in un tipo di dati numerico.
Ecco cosa succede quando forniamo un argomento non numerico che non può essere convertito in un tipo di dati numerico:
SELECT CEIL('Oops!')
FROM DUAL;
Risultato:
Error starting at line : 1 in command - SELECT CEIL('Oops!') FROM DUAL Error report - ORA-01722: invalid number
Valori Nulli
Passaggio null
a CEIL()
restituisce null
:
SET NULL 'null';
SELECT CEIL(null)
FROM DUAL;
Risultato:
CEIL(NULL) _____________ null
Per impostazione predefinita, SQLcl e SQL*Plus restituiscono uno spazio vuoto ogni volta che null
si verifica come risultato di un SQL SELECT
dichiarazione.
Tuttavia, puoi utilizzare SET NULL
per specificare una stringa diversa da restituire. Qui ho specificato che la stringa null
deve essere restituito.
Conteggio argomenti errato
Chiamando CEIL()
senza passare alcun argomento restituisce un errore:
SELECT CEIL()
FROM DUAL;
Risultato:
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:
E il passaggio del numero errato di argomenti genera un errore:
SELECT CEIL(1, 2)
FROM DUAL;
Risultato:
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 ha anche un FLOOR()
funzione che restituisce il numero intero più grande uguale o inferiore al suo argomento.