В Oracle, CEIL()
функцията връща най-малкото цяло число, което е по-голямо или равно на нейния аргумент.
Синтаксис
Синтаксисът е така:
CEIL(n)
Където n
може да бъде всеки числов тип данни или всеки нечисловен тип данни, който може да бъде имплицитно преобразуван в числов тип данни.
Пример
Ето един пример:
SELECT CEIL(7.15)
FROM DUAL;
Резултат:
CEIL(7.15) _____________ 8
Предаването на отрицателна стойност води до следния резултат:
SELECT CEIL(-7.15)
FROM DUAL;
Резултат:
CEIL(-7.15) ______________ -7
В сравнение с ROUND()
CEIL()
функцията е различна от ROUND()
функция. ROUND()
функцията би закръглила числото надолу в някои случаи, докато CEIL()
винаги връща най-малкото цяло число, което е по-голямо или равно на неговия аргумент.
SELECT
CEIL(7.15),
ROUND(7.15)
FROM DUAL;
Резултат:
CEIL(7.15) ROUND(7.15) _____________ ______________ 8 7
Също така, ROUND()
ни позволява да посочим броя на десетичните знаци, които да закръгляме до:
SELECT
CEIL(7.15),
ROUND(7.15, 1)
FROM DUAL;
Резултат:
CEIL(7.15) ROUND(7.15,1) _____________ ________________ 8 7.2
Нечислов аргумент
Аргументът може да бъде всеки числов тип данни или всеки нечисловен тип данни, който може да бъде имплицитно преобразуван в числов тип данни.
Ето какво се случва, когато предоставим нечислов аргумент, който не може да бъде преобразуван в числов тип данни:
SELECT CEIL('Oops!')
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT CEIL('Oops!') FROM DUAL Error report - ORA-01722: invalid number
Нулеви стойности
Предаването на null
към CEIL()
връща null
:
SET NULL 'null';
SELECT CEIL(null)
FROM DUAL;
Резултат:
CEIL(NULL) _____________ null
По подразбиране SQLcl и SQL*Plus връщат празно пространство всеки път, когато null
възниква в резултат на SQL SELECT
изявление.
Можете обаче да използвате SET NULL
за да посочите различен низ, който да бъде върнат. Тук посочих, че низът null
трябва да бъдат върнати.
Неправилен брой аргументи
Извикване на CEIL()
без подаване на аргументи връща грешка:
SELECT CEIL()
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT CEIL() 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 CEIL(1, 2)
FROM DUAL;
Резултат:
Error starting at line : 1 in command - SELECT CEIL(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 също има FLOOR()
функция, която връща най-голямото цяло число, равно на или по-малко от неговия аргумент.