sql >> Database teknologi >  >> RDS >> Oracle

CEIL() Funktion i Oracle

I Oracle er CEIL() funktion returnerer det mindste heltal, der er større end eller lig med dets argument.

Syntaks

Syntaksen ser sådan ud:

CEIL(n)

Hvor n kan være enhver numerisk datatype eller enhver ikke-numerisk datatype, der implicit kan konverteres til en numerisk datatype.

Eksempel

Her er et eksempel:

SELECT CEIL(7.15)
FROM DUAL;

Resultat:

   CEIL(7.15) 
_____________ 
            8

Hvis du sender en negativ værdi, får du følgende resultat:

SELECT CEIL(-7.15)
FROM DUAL;

Resultat:

   CEIL(-7.15) 
______________ 
            -7 

Sammenlignet med ROUND()

CEIL() funktionen er forskellig fra ROUND() fungere. ROUND() funktion ville runde tallet ned i nogle tilfælde, hvorimod CEIL() returnerer altid det mindste heltal, der er større end eller lig med dets argument.

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

Resultat:

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

Også ROUND() giver os mulighed for at angive antallet af decimaler, der skal afrundes til:

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

Resultat:

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

Ikke-numerisk argument

Argumentet kan være enhver numerisk datatype eller enhver ikke-numerisk datatype, der implicit kan konverteres til en numerisk datatype.

Her er, hvad der sker, når vi angiver et ikke-numerisk argument, der ikke kan konverteres til en numerisk datatype:

SELECT CEIL('Oops!')
FROM DUAL;

Resultat:

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

Nul-værdier

Sender null til CEIL() returnerer null :

SET NULL 'null';

SELECT CEIL(null)
FROM DUAL;

Resultat:

   CEIL(NULL) 
_____________ 
         null 

Som standard returnerer SQLcl og SQL*Plus et tomt mellemrum, når null opstår som et resultat af en SQL SELECT udmelding.

Du kan dog bruge SET NULL for at angive en anden streng, der skal returneres. Her specificerede jeg, at strengen null skal returneres.

Forkert antal argumenter

Kalder CEIL() uden at sende nogen argumenter returnerer en fejl:

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:

Og at sende det forkerte antal argumenter resulterer i en fejl:

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 også en FLOOR() funktion, der returnerer det største heltal lig med eller mindre end dets argument.


  1. Konverter 'datetime offset' til 'date' i SQL Server (T-SQL-eksempler)

  2. En peer-to-peer udlånsplatform datamodel

  3. Sådan fungerer DATEDIFF() i MariaDB

  4. Sådan implementeres Chamilo MySQL-databasen for høj tilgængelighed