Trong Oracle, CEIL()
hàm trả về số nguyên nhỏ nhất lớn hơn hoặc bằng đối số của nó.
Cú pháp
Cú pháp như sau:
CEIL(n)
Ở đâu n
có thể là bất kỳ kiểu dữ liệu số nào hoặc bất kỳ kiểu dữ liệu phi số nào có thể được chuyển đổi hoàn toàn thành kiểu dữ liệu số.
Ví dụ
Đây là một ví dụ:
SELECT CEIL(7.15)
FROM DUAL;
Kết quả:
CEIL(7.15) _____________ 8
Việc chuyển một giá trị âm sẽ tạo ra kết quả sau:
SELECT CEIL(-7.15)
FROM DUAL;
Kết quả:
CEIL(-7.15) ______________ -7
So với ROUND()
CEIL()
hàm khác với ROUND()
hàm số. ROUND()
hàm sẽ làm tròn số xuống trong một số trường hợp, trong khi CEIL()
luôn trả về giá trị số nguyên nhỏ nhất lớn hơn hoặc bằng đối số của nó.
SELECT
CEIL(7.15),
ROUND(7.15)
FROM DUAL;
Kết quả:
CEIL(7.15) ROUND(7.15) _____________ ______________ 8 7
Ngoài ra, ROUND()
cho phép chúng tôi chỉ định số chữ số thập phân để làm tròn thành:
SELECT
CEIL(7.15),
ROUND(7.15, 1)
FROM DUAL;
Kết quả:
CEIL(7.15) ROUND(7.15,1) _____________ ________________ 8 7.2
Đối số không phải là số
Đối số có thể là bất kỳ kiểu dữ liệu số hoặc bất kỳ kiểu dữ liệu không phải số nào có thể được chuyển đổi hoàn toàn sang kiểu dữ liệu số.
Đây là những gì sẽ xảy ra khi chúng tôi cung cấp đối số không phải là số không thể chuyển đổi thành kiểu dữ liệu số:
SELECT CEIL('Oops!')
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT CEIL('Oops!') FROM DUAL Error report - ORA-01722: invalid number
Giá trị rỗng
Chuyển null
thành CEIL()
trả về null
:
SET NULL 'null';
SELECT CEIL(null)
FROM DUAL;
Kết quả:
CEIL(NULL) _____________ null
Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào null
xảy ra do một SELECT
trong SQL tuyên bố.
Tuy nhiên, bạn có thể sử dụng SET NULL
để chỉ định một chuỗi khác được trả về. Ở đây tôi đã chỉ định rằng chuỗi null
nên được trả lại.
Số lượng đối số không chính xác
Đang gọi CEIL()
mà không chuyển bất kỳ đối số nào sẽ trả về lỗi:
SELECT CEIL()
FROM DUAL;
Kết quả:
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:
Và việc chuyển sai số đối số dẫn đến lỗi:
SELECT CEIL(1, 2)
FROM DUAL;
Kết quả:
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 cũng có FLOOR()
hàm trả về số nguyên lớn nhất bằng hoặc nhỏ hơn đối số của nó.