Oracle
 sql >> Baza danych >  >> RDS >> Oracle

FLOOR() Funkcja w Oracle

W Oracle FLOOR() funkcja zwraca największą liczbę całkowitą równą lub mniejszą od jej argumentu.

Składnia

Składnia wygląda tak:

FLOOR(n)

Gdzie n może być dowolnym liczbowym typem danych lub dowolnym nienumerycznym typem danych, który można niejawnie przekonwertować na numeryczny typ danych.

Przykład

Oto przykład:

SELECT FLOOR(1.85)
FROM DUAL;

Wynik:

   FLOOR(1.85) 
______________ 
             1 

Przełączenie go na wartość ujemną daje następujący wynik:

SELECT FLOOR(-1.85)
FROM DUAL;

Wynik:

   FLOOR(-1.85) 
_______________ 
             -2 

W porównaniu z ROUND()

FLOOR() funkcja jest inna niż ROUND() funkcjonować. ROUND() funkcja zaokrągla liczbę w górę w niektórych przypadkach, aw innych w dół. FLOOR() z drugiej strony, zawsze zwraca największą liczbę całkowitą równą lub mniejszą niż jej argument.

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

Wynik:

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

Również ROUND() pozwala nam określić liczbę miejsc po przecinku do zaokrąglenia:

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

Wynik:

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

Argument nieliczbowy

Argumentem może być dowolny numeryczny typ danych lub dowolny nienumeryczny typ danych, który można niejawnie przekonwertować na numeryczny typ danych.

Oto, co się dzieje, gdy dostarczamy nieliczbowy argument, którego nie można przekonwertować na liczbowy typ danych:

SELECT FLOOR('Bruce')
FROM DUAL;

Wynik:

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

Wartości puste

Przekazywanie null do FLOOR() zwraca null :

SET NULL 'null';

SELECT FLOOR(null)
FROM DUAL;

Wynik:

   FLOOR(NULL) 
______________ 
          null

Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

Nieprawidłowa liczba argumentów

Wywołanie FLOOR() bez przekazywania żadnych argumentów zwraca błąd:

SELECT FLOOR()
FROM DUAL;

Wynik:

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 przekazanie niewłaściwej liczby argumentów skutkuje błędem:

SELECT FLOOR(1, 2)
FROM DUAL;

Wynik:

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 ma również funkcję CEIL() funkcja zwracająca najmniejszą liczbę całkowitą, która jest większa lub równa jej argumentowi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle (11.2.0.1) :Jak zidentyfikować wiersz, który jest obecnie aktualizowany przez instrukcję UPDATE

  2. Jak zapakować PL SQL Code w Oracle?

  3. JDBC ResultSet:potrzebuję getDateTime, ale są tylko getDate i getTimeStamp

  4. Jak dostroić lub przetestować wydajność kodu PLSQL w Oracle D2k Forms

  5. Zautomatyzuj zadania integracji danych IRI za pomocą Oracle Job Scheduler