sql >> Databáze >  >> RDS >> Oracle

Funkce CEIL() v Oracle

V Oracle, CEIL() funkce vrací nejmenší celé číslo, které je větší nebo rovno jeho argumentu.

Syntaxe

Syntaxe vypadá takto:

CEIL(n)

Kde n může být jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.

Příklad

Zde je příklad:

SELECT CEIL(7.15)
FROM DUAL;

Výsledek:

   CEIL(7.15) 
_____________ 
            8

Předání záporné hodnoty vede k následujícímu výsledku:

SELECT CEIL(-7.15)
FROM DUAL;

Výsledek:

   CEIL(-7.15) 
______________ 
            -7 

Ve srovnání s ROUND()

CEIL() funkce se liší od funkce ROUND() funkce. ROUND() Funkce by v některých případech zaokrouhlila číslo dolů, zatímco CEIL() vždy vrátí nejmenší celé číslo, které je větší nebo rovno jeho argumentu.

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

Výsledek:

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

Také ROUND() nám umožňuje zadat počet desetinných míst na zaokrouhlení:

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

Výsledek:

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

Nečíselný argument

Argumentem může být jakýkoli číselný datový typ nebo jakýkoli nenumerický datový typ, který lze implicitně převést na číselný datový typ.

Co se stane, když poskytneme nečíselný argument, který nelze převést na číselný datový typ:

SELECT CEIL('Oops!')
FROM DUAL;

Výsledek:

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

Nulové hodnoty

Předávání null na CEIL() vrátí null :

SET NULL 'null';

SELECT CEIL(null)
FROM DUAL;

Výsledek:

   CEIL(NULL) 
_____________ 
         null 

Ve výchozím nastavení vrátí SQLcl a SQL*Plus prázdné místo vždy, když null dochází v důsledku SQL SELECT prohlášení.

Můžete však použít SET NULL určit jiný řetězec, který má být vrácen. Zde jsem uvedl, že řetězec null by měl být vrácen.

Nesprávný počet argumentů

Volání CEIL() bez předání jakýchkoli argumentů vrátí chybu:

SELECT CEIL()
FROM DUAL;

Výsledek:

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:

A předání nesprávného počtu argumentů má za následek chybu:

SELECT CEIL(1, 2)
FROM DUAL;

Výsledek:

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 má také FLOOR() funkce, která vrací největší celé číslo rovné nebo menší než je jeho argument.


  1. Jak vrátit RefCursor z funkce Oracle?

  2. Jedinečné omezení Postgres vs index

  3. Předávání datové tabulky jako parametru do uložených procedur

  4. Převést „smalldatetime“ na „datetimeoffset“ v SQL Server (příklady T-SQL)