Trong Oracle, ABS()
hàm trả về giá trị tuyệt đối của đối số của nó.
Giá trị tuyệt đối là giá trị không âm của một số thực mà không tính đến dấu của nó. Nó mô tả khoảng cách từ số 0 mà một số nằm trên trục số, không tính đến hướng.
Cú pháp
ABS()
cú pháp của hàm như sau:
ABS(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 sang kiểu dữ liệu số.
Hàm trả về cùng kiểu dữ liệu với kiểu dữ liệu số của đối số.
Ví dụ
Dưới đây là một ví dụ để chứng minh:
SELECT ABS(-7)
FROM DUAL;
Kết quả:
ABS(-7) __________ 7
Giá trị tuyệt đối của -7
là 7
.
Đó chính xác là kết quả mà chúng tôi sẽ nhận được nếu vượt qua 7
dương tính :
SELECT
ABS(7),
ABS(-7)
FROM DUAL;
Kết quả:
ABS(7) ABS(-7) _________ __________ 7 7
Giá trị rỗng
Chuyển null
thành ABS()
trả về null
:
SET NULL 'null';
SELECT ABS(null)
FROM DUAL;
Kết quả:
ABS(NULL) ____________ null
Theo mặc định, SQLcl và SQL * Plus trả về một khoảng trống bất cứ khi nào giá trị null xảy ra do kết quả của một SQL SELECT
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
Gọi ABS()
mà không chuyển bất kỳ đối số nào sẽ trả về lỗi:
SELECT ABS()
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT ABS() 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 ABS(1, 2)
FROM DUAL;
Kết quả:
Error starting at line : 1 in command - SELECT ABS(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: