Oracle
 sql >> Datenbank >  >> RDS >> Oracle

FLOOR()-Funktion in Oracle

In Oracle der FLOOR() Die Funktion gibt die größte Ganzzahl zurück, die gleich oder kleiner als ihr Argument ist.

Syntax

Die Syntax lautet wie folgt:

FLOOR(n)

Wobei n kann ein beliebiger numerischer Datentyp oder ein beliebiger nicht numerischer Datentyp sein, der implizit in einen numerischen Datentyp konvertiert werden kann.

Beispiel

Hier ist ein Beispiel:

SELECT FLOOR(1.85)
FROM DUAL;

Ergebnis:

   FLOOR(1.85) 
______________ 
             1 

Das Umschalten auf einen negativen Wert führt zu folgendem Ergebnis:

SELECT FLOOR(-1.85)
FROM DUAL;

Ergebnis:

   FLOOR(-1.85) 
_______________ 
             -2 

Im Vergleich zu ROUND()

Der FLOOR() Funktion unterscheidet sich von ROUND() Funktion. Das ROUND() Die Funktion würde die Zahl in einigen Fällen aufrunden und in anderen abrunden. FLOOR() gibt andererseits immer die größte ganze Zahl zurück, die gleich oder kleiner als sein Argument ist.

SELECT 
    FLOOR(1.85),
    ROUND(1.85)
FROM DUAL;

Ergebnis:

   FLOOR(1.85)    ROUND(1.85) 
______________ ______________ 
             1              2 

Auch ROUND() ermöglicht es uns, die Anzahl der Dezimalstellen anzugeben, auf die gerundet werden soll:

SELECT 
    FLOOR(1.85),
    ROUND(1.85, 1)
FROM DUAL;

Ergebnis:

   FLOOR(1.85)    ROUND(1.85,1) 
______________ ________________ 
             1              1.9 

Nicht numerisches Argument

Das Argument kann ein beliebiger numerischer Datentyp oder ein beliebiger nicht numerischer Datentyp sein, der implizit in einen numerischen Datentyp konvertiert werden kann.

Folgendes passiert, wenn wir ein nicht numerisches Argument angeben, das nicht in einen numerischen Datentyp konvertiert werden kann:

SELECT FLOOR('Bruce')
FROM DUAL;

Ergebnis:

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

Nullwerte

Übergabe von null zu FLOOR() gibt null zurück :

SET NULL 'null';

SELECT FLOOR(null)
FROM DUAL;

Ergebnis:

   FLOOR(NULL) 
______________ 
          null

Standardmäßig geben SQLcl und SQL*Plus ein Leerzeichen zurück, wenn null tritt als Ergebnis eines SQL SELECT auf Erklärung.

Sie können jedoch SET NULL verwenden um eine andere Zeichenfolge anzugeben, die zurückgegeben werden soll. Hier habe ich angegeben, dass der String null zurückgegeben werden soll.

Falsche Argumentanzahl

Aufruf von FLOOR() ohne Übergabe von Argumenten gibt einen Fehler zurück:

SELECT FLOOR()
FROM DUAL;

Ergebnis:

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:

Und das Übergeben der falschen Anzahl von Argumenten führt zu einem Fehler:

SELECT FLOOR(1, 2)
FROM DUAL;

Ergebnis:

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 hat auch ein CEIL() Funktion, die die kleinste Ganzzahl zurückgibt, die größer oder gleich ihrem Argument ist.