V Oracle je to FLOOR() funkce vrací největší celé číslo rovné nebo menší než je jeho argument.
Syntaxe
Syntaxe vypadá takto:
FLOOR(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 FLOOR(1.85)
FROM DUAL; Výsledek:
FLOOR(1.85)
______________
1 Přepnutím na zápornou hodnotu vznikne následující výsledek:
SELECT FLOOR(-1.85)
FROM DUAL; Výsledek:
FLOOR(-1.85)
_______________
-2 Ve srovnání s ROUND()
FLOOR() funkce se liší od funkce ROUND() funkce. ROUND() Funkce by v některých případech zaokrouhlovala číslo nahoru a v jiných dolů. FLOOR() na druhou stranu vždy vrátí největší celé číslo rovné nebo menší než je jeho argument.
SELECT
FLOOR(1.85),
ROUND(1.85)
FROM DUAL; Výsledek:
FLOOR(1.85) ROUND(1.85)
______________ ______________
1 2
Také ROUND() nám umožňuje zadat počet desetinných míst na zaokrouhlení:
SELECT
FLOOR(1.85),
ROUND(1.85, 1)
FROM DUAL; Výsledek:
FLOOR(1.85) ROUND(1.85,1)
______________ ________________
1 1.9 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 FLOOR('Bruce')
FROM DUAL; Výsledek:
Error starting at line : 1 in command -
SELECT FLOOR('Bruce')
FROM DUAL
Error report -
ORA-01722: invalid number Nulové hodnoty
Předávání null na FLOOR() vrátí null :
SET NULL 'null';
SELECT FLOOR(null)
FROM DUAL; Výsledek:
FLOOR(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í FLOOR() bez předání jakýchkoli argumentů vrátí chybu:
SELECT FLOOR()
FROM DUAL; Výsledek:
Error starting at line : 1 in command - SELECT FLOOR() 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 FLOOR(1, 2)
FROM DUAL; Výsledek:
Error starting at line : 1 in command - SELECT FLOOR(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é CEIL() funkce, která vrací nejmenší celé číslo, které je větší nebo rovno jeho argumentu.