sql >> Database >  >> RDS >> Oracle

FLOOR() Functie in Oracle

In Oracle is de FLOOR() functie retourneert het grootste gehele getal gelijk aan of kleiner dan zijn argument.

Syntaxis

De syntaxis gaat als volgt:

FLOOR(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 FLOOR(1.85)
FROM DUAL;

Resultaat:

   FLOOR(1.85) 
______________ 
             1 

Het overschakelen naar een negatieve waarde levert het volgende resultaat op:

SELECT FLOOR(-1.85)
FROM DUAL;

Resultaat:

   FLOOR(-1.85) 
_______________ 
             -2 

Vergeleken met ROUND()

De FLOOR() functie is anders dan de ROUND() functie. De ROUND() functie zou het getal in sommige gevallen naar boven afronden en in andere naar beneden. FLOOR() aan de andere kant, retourneert altijd het grootste gehele getal dat gelijk is aan of kleiner is dan zijn argument.

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

Resultaat:

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

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

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

Resultaat:

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

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 FLOOR('Bruce')
FROM DUAL;

Resultaat:

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

Null-waarden

Doorgeven van null naar FLOOR() retourneert null :

SET NULL 'null';

SELECT FLOOR(null)
FROM DUAL;

Resultaat:

   FLOOR(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

Bellen FLOOR() zonder het doorgeven van argumenten geeft een fout:

SELECT FLOOR()
FROM DUAL;

Resultaat:

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:

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

SELECT FLOOR(1, 2)
FROM DUAL;

Resultaat:

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 heeft ook een CEIL() functie die het kleinste gehele getal retourneert dat groter is dan of gelijk is aan zijn argument.


  1. Snelste manier om 120 miljoen records bij te werken

  2. Hoe de volgorde van invoeging in SQL Server te behouden?

  3. Converteer 'smalldatetime' naar 'datetime2' in SQL Server (T-SQL-voorbeelden)

  4. JSON_SEARCH() – Vind het pad naar een string in een JSON-document in MySQL