Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách sử dụng hàm NVL () trong Oracle

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách giải quyết ORA-011033:Đang khởi động hoặc tắt ORACLE

  2. 2 chức năng để có được năm từ một ngày trong Oracle

  3. Liên kết lại cơ sở hạ tầng lưới

  4. Oracle ODP.net Trình điều khiển được quản lý và Không được quản lý

  5. Chèn các cột mới vào giữa bảng?