Oracle
 sql >> база данни >  >> RDS >> Oracle

Функция FLOOR() в Oracle

В Oracle, FLOOR() функцията връща най-голямото цяло число, равно на или по-малко от нейния аргумент.

Синтаксис

Синтаксисът е така:

FLOOR(n)

Където n може да бъде всеки числов тип данни или всеки нечисловен тип данни, който може да бъде имплицитно преобразуван в числов тип данни.

Пример

Ето един пример:

SELECT FLOOR(1.85)
FROM DUAL;

Резултат:

   FLOOR(1.85) 
______________ 
             1 

Превключването му на отрицателна стойност води до следния резултат:

SELECT FLOOR(-1.85)
FROM DUAL;

Резултат:

   FLOOR(-1.85) 
_______________ 
             -2 

В сравнение с ROUND()

FLOOR() функцията е различна от ROUND() функция. ROUND() функцията ще закръгли числото нагоре в някои случаи и надолу в други. FLOOR() от друга страна, винаги връща най-голямото цяло число, равно на или по-малко от неговия аргумент.

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

Резултат:

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

Също така, ROUND() ни позволява да посочим броя на десетичните знаци, които да закръгляме до:

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

Резултат:

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

Нечислов аргумент

Аргументът може да бъде всеки числов тип данни или всеки нечисловен тип данни, който може да бъде имплицитно преобразуван в числов тип данни.

Ето какво се случва, когато предоставим нечислов аргумент, който не може да бъде преобразуван в числов тип данни:

SELECT FLOOR('Bruce')
FROM DUAL;

Резултат:

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

Нулеви стойности

Предаването на null към FLOOR() връща null :

SET NULL 'null';

SELECT FLOOR(null)
FROM DUAL;

Резултат:

   FLOOR(NULL) 
______________ 
          null

По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null възниква в резултат на SQL SELECT изявление.

Можете обаче да използвате SET NULL за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null трябва да бъдат върнати.

Неправилен брой аргументи

Извикване на FLOOR() без подаване на аргументи връща грешка:

SELECT FLOOR()
FROM DUAL;

Резултат:

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:

И предаването на грешен брой аргументи води до грешка:

SELECT FLOOR(1, 2)
FROM DUAL;

Резултат:

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 също има CEIL() функция, която връща най-малкото цяло число, което е по-голямо или равно на неговия аргумент.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да извика съхранена процедура в JDBC

  2. ORA-01219:базата данни не е отворена:заявки са разрешени само за фиксирани таблици/изгледи

  3. ORA-01017 Съвети за разрешаване на грешки на Oracle

  4. Как мога да напиша SQL в Oracle в моя случай?

  5. Променете порта на Oracle от порт 8080