sql >> Database >  >> RDS >> Oracle

CEIL() Functie in Oracle

In Oracle is de CEIL() functie retourneert het kleinste gehele getal dat groter is dan of gelijk is aan zijn argument.

Syntaxis

De syntaxis gaat als volgt:

CEIL(n)

Waar n kan elk numeriek gegevenstype zijn of elk niet-numeriek gegevenstype dat impliciet kan worden geconverteerd naar een numeriek gegevenstype.

Voorbeeld

Hier is een voorbeeld:

SELECT CEIL(7.15)
FROM DUAL;

Resultaat:

   CEIL(7.15) 
_____________ 
            8

Het doorgeven van een negatieve waarde levert het volgende resultaat op:

SELECT CEIL(-7.15)
FROM DUAL;

Resultaat:

   CEIL(-7.15) 
______________ 
            -7 

Vergeleken met ROUND()

Het CEIL() functie is anders dan de ROUND() functie. De ROUND() functie zou het getal in sommige gevallen naar beneden afronden, terwijl CEIL() retourneert altijd het kleinste gehele getal dat groter is dan of gelijk is aan het argument.

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

Resultaat:

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

Ook ROUND() stelt ons in staat om het aantal decimalen te specificeren waarop moet worden afgerond:

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

Resultaat:

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

Niet-numeriek argument

Het argument kan elk numeriek gegevenstype zijn of elk niet-numeriek gegevenstype dat impliciet kan worden geconverteerd naar een numeriek gegevenstype.

Dit is wat er gebeurt als we een niet-numeriek argument opgeven dat niet kan worden geconverteerd naar een numeriek gegevenstype:

SELECT CEIL('Oops!')
FROM DUAL;

Resultaat:

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

Null-waarden

Doorgeven van null naar CEIL() retourneert null :

SET NULL 'null';

SELECT CEIL(null)
FROM DUAL;

Resultaat:

   CEIL(NULL) 
_____________ 
         null 

Standaard retourneren SQLcl en SQL*Plus een spatie wanneer null treedt op als resultaat van een SQL SELECT uitspraak.

U kunt echter SET NULL . gebruiken om een ​​andere tekenreeks op te geven die moet worden geretourneerd. Hier heb ik gespecificeerd dat de string null moet worden geretourneerd.

Onjuist aantal argumenten

Aanroepen van CEIL() zonder het doorgeven van argumenten geeft een fout:

SELECT CEIL()
FROM DUAL;

Resultaat:

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:

En het doorgeven van het verkeerde aantal argumenten resulteert in een fout:

SELECT CEIL(1, 2)
FROM DUAL;

Resultaat:

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 heeft ook een FLOOR() functie die het grootste gehele getal teruggeeft dat gelijk is aan of kleiner is dan zijn argument.


  1. SQL Server Collection Inventory Script -3

  2. Fout bij gebruik van patroonovereenkomst die niet lijkt op die in PostgreSQL

  3. Waarom is 1899-12-30 de nuldatum in Access / SQL Server in plaats van 31-12?

  4. Wordt de methode onUpgrade ooit aangeroepen?