Hướng dẫn Oracle SQL này cung cấp các giải thích, ví dụ về hàm NVL trong Oracle
Hàm NVL () trong Oracle là gì
Hàm NVL trong Oracle là một hàm lồng nhau được sử dụng để thay thế các giá trị null bằng các giá trị nhất định
Trong cú pháp trên
expr1 :nó là các giá trị nguồn hoặc biểu thức có thể chứa null. Bạn có thể cung cấp tên cột, hàm trên tên cột
expr2:Đây là giá trị đích sẽ được đặt trong trường hợp null được trả về từ expr1
Nếu expr1 là null, thì NVL trả về expr2. Nếu expr1 không null, thì NVL trả về expr1.
Những điểm quan trọng cần lưu ý
(1) Các đối số expr1 và expr2 có thể có bất kỳ kiểu dữ liệu nào. Nếu kiểu dữ liệu của chúng khác nhau, thì Cơ sở dữ liệu Oracle sẽ chuyển đổi ngầm định kiểu này sang kiểu khác. Nếu không thể chuyển đổi ngầm định chúng, cơ sở dữ liệu sẽ trả về lỗi.
Nếu expr1 là dữ liệu ký tự, thì Cơ sở dữ liệu Oracle chuyển đổi expr2 thành kiểu dữ liệu của expr1 trước khi so sánh chúng và trả về VARCHAR2 trong tập ký tự của expr1.
Nếu expr1 là số, thì Oracle xác định đối số nào có ưu tiên số cao nhất, chuyển đổi hoàn toàn đối số khác thành kiểu dữ liệu đó và trả về kiểu dữ liệu đó.
Vì vậy, câu lệnh sau sẽ thành công
select nvl (num-col, 10) from
select nvl (char-col, 'NA') from select nvl (end_date, '01 -MAY-18 ') from
Câu lệnh sau sẽ thực hiện chuyển đổi ngầm định
chọn nvl (char-col, 1) từ
Câu lệnh sau sẽ không thành công
select nvl (end_date, 'm / a') from
select nvl (user_id, 'abc') from Cách sử dụng hàm NVL ()
Hàm này rất hữu ích khi chúng tôi không muốn trả về giá trị null hoặc trong phép tính số vì null sẽ biến toàn bộ giá trị thành null
Hãy bắt đầu lấy ví dụ để hiểu rõ điều đó
Chúng tôi có bảng sales_people chứa doanh số bán hàng do nhân viên bán hàng thực hiện,% hoa hồng trên doanh số bán hàng, tiền lương của mọi người. Chúng tôi muốn tính tổng thu nhập hàng tháng cho các nhân viên bán hàng. Bán hàng có thể có giá trị rỗng
Tuyên bố sẽ là
chọn tên, (lương + doanh số * hoa hồng / 100) Thu_ nhập hàng tháng từ nhân viên bán hàng;
Nó sẽ trả về giá trị rỗng của tất cả những người chưa thực hiện bất kỳ hoạt động bán hàng nào trong khoảng thời gian đó vì phép tính sẽ có giá trị rỗng
Điều này có thể được khắc phục bằng cách sử dụng hàm nvl như
chọn tên, (lương + nvl (doanh số, 0) * hoa hồng / 100) Thu nhập hàng tháng từ nhân viên bán hàng;
Vì vậy, nó rõ ràng là rất hữu ích trong khi thực hiện các phép toán. Hàm NVL trong Oracle là một hàm khá hữu ích và nó có thể được sử dụng ở nhiều nơi
Cũng đã đọc Các hàm ngày
trong oracle sql
Hàm NULLIF trong Oracle
Cập nhật câu lệnh trong oracle
Hàm Coalesce trong Oracle
thay đổi định dạng ngày trong oracle
https:// docs .oracle.com / cd / B19306_01 / server.102 / b14200 / functions105.htm