Trong Cơ sở dữ liệu Oracle, NVL()
hàm cho phép chúng tôi thay thế các giá trị null bằng một giá trị khác.
Cú pháp
Cú pháp như sau:
NVL(expr1, expr2)
Nếu expr1
là null, sau đó là expr2
Được trả lại. Nếu không thì expr1
được trả lại.
Ví dụ
Dưới đây là một ví dụ để chứng minh:
SELECT NVL(null, 'Fish')
FROM DUAL;
Kết quả:
Fish
Và đây là những gì sẽ xảy ra khi đối số đầu tiên là một giá trị khác rỗng:
SELECT NVL('Brocoli', 'Fish')
FROM DUAL;
Kết quả:
Brocoli
Số lượng đối số không hợp lệ
Việc gọi hàm mà không chuyển bất kỳ đối số nào dẫn đến lỗi:
SELECT NVL()
FROM DUAL;
Kết quả:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
Và việc chuyển quá nhiều đối số cũng gây ra lỗi:
SELECT NVL(1, 2, 3)
FROM DUAL;
Kết quả:
SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments"
NVL2()
Chức năng
Ngoài ra, bạn có thể sử dụng NVL2()
hàm mà cho phép bạn chỉ định một giá trị khác để trả về trong trường hợp đối số đầu tiên không phải là null.