I Oracle, CEIL()
funktion returnerar det minsta heltal som är större än eller lika med dess argument.
Syntax
Syntaxen ser ut så här:
CEIL(n)
Där n
kan vara vilken numerisk datatyp som helst eller vilken icke-numerisk datatyp som helst som implicit kan konverteras till en numerisk datatyp.
Exempel
Här är ett exempel:
SELECT CEIL(7.15)
FROM DUAL;
Resultat:
CEIL(7.15) _____________ 8
Att skicka ett negativt värde ger följande resultat:
SELECT CEIL(-7.15)
FROM DUAL;
Resultat:
CEIL(-7.15) ______________ -7
Jämfört med ROUND()
CEIL()
funktionen skiljer sig från ROUND()
fungera. ROUND()
funktion skulle avrunda talet nedåt i vissa fall, medan CEIL()
returnerar alltid det minsta heltalsvärdet som är större än eller lika med dess argument.
SELECT
CEIL(7.15),
ROUND(7.15)
FROM DUAL;
Resultat:
CEIL(7.15) ROUND(7.15) _____________ ______________ 8 7
Även ROUND()
tillåter oss att ange antalet decimaler som ska avrundas till:
SELECT
CEIL(7.15),
ROUND(7.15, 1)
FROM DUAL;
Resultat:
CEIL(7.15) ROUND(7.15,1) _____________ ________________ 8 7.2
Icke-numeriskt argument
Argumentet kan vara vilken numerisk datatyp som helst eller vilken icke-numerisk datatyp som helst som implicit kan konverteras till en numerisk datatyp.
Så här händer när vi tillhandahåller ett icke-numeriskt argument som inte kan konverteras till en numerisk datatyp:
SELECT CEIL('Oops!')
FROM DUAL;
Resultat:
Error starting at line : 1 in command - SELECT CEIL('Oops!') FROM DUAL Error report - ORA-01722: invalid number
Nullvärden
Skickar null
till CEIL()
returnerar null
:
SET NULL 'null';
SELECT CEIL(null)
FROM DUAL;
Resultat:
CEIL(NULL) _____________ null
Som standard returnerar SQLcl och SQL*Plus ett tomt utrymme när null
uppstår som ett resultat av en SQL SELECT
påstående.
Du kan dock använda SET NULL
för att ange en annan sträng som ska returneras. Här specificerade jag att strängen null
bör returneras.
Inkorrekt antal argument
Anropar CEIL()
utan att skicka några argument returnerar ett fel:
SELECT CEIL()
FROM DUAL;
Resultat:
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:
Och att skicka fel antal argument resulterar i ett fel:
SELECT CEIL(1, 2)
FROM DUAL;
Resultat:
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 har också en FLOOR()
funktion som returnerar det största heltal som är lika med eller mindre än dess argument.