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