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

Oracle ISNULL () Tương đương

Hầu hết các DBMS chính đều cung cấp cho chúng ta một hàm để thay thế các giá trị null bằng một giá trị khác.

Nhưng tên của hàm có xu hướng khác nhau giữa các DBMS. Ví dụ:SQL Server có ISNULL() , trong khi các hàm khác (chẳng hạn như MySQL, MariaDB và SQLite) có IFNULL() chức năng để làm điều tương tự.

Tuy nhiên, để nhầm lẫn giữa các vấn đề, MySQL và MariaDB đều có ISNULL() hàm hoạt động khác với hàm cùng tên của SQL Server (triển khai của MySQL và MariaDB chỉ chấp nhận một đối số duy nhất và trả về 1 nếu null của nó và 0 nếu không).

Dù sao, trong trường hợp Cơ sở dữ liệu Oracle, chúng ta có thể sử dụng NVL() hàm để thay thế các giá trị null bằng một giá trị khác.

Trên thực tế, Cơ sở dữ liệu Oracle cũng có NVL2() hàm cho phép chúng tôi cung cấp một giá trị khác để sử dụng trong trường hợp đối số đầu tiên không phải là null .

Nếu chúng ta chỉ muốn kiểm tra xem một giá trị có phải là null hay không hoặc không, chúng ta có thể sử dụng IS NULL điều kiện (hoặc IS NOT NULL cho thử nghiệm ngược lại).

NVL() Chức năng

Dưới đây là một ví dụ minh họa cách NVL() chức năng hoạt động:

SELECT NVL(null, 'Run')
FROM DUAL;

Kết quả:

Run

Trong trường hợp đó, đối số đầu tiên là null và do đó, đối số thứ hai đã được trả về.

Đây là những gì sẽ xảy ra khi đối số đầu tiên không phải là null :

SELECT NVL('Walk', 'Run')
FROM DUAL;

Kết quả:

Walk

Đối số đầu tiên được trả về.

NVL2() Chức năng

Như đã đề cập, Cơ sở dữ liệu Oracle cũng cung cấp cho chúng ta NVL2() hàm số. Hàm này cho phép chúng tôi cung cấp một giá trị khác để sử dụng trong trường hợp đối số đầu tiên không phải là null .

Dưới đây là một ví dụ về cách nó hoạt động:

SELECT NVL2(null, 2, 3)
FROM DUAL;

Kết quả:

3

Đối số đầu tiên là null và do đó, đối số thứ ba đã được trả về.

Đây là những gì sẽ xảy ra khi đối số đầu tiên không phải là null :

SELECT NVL2(1, 2, 3)
FROM DUAL;

Kết quả:

2

Đối số thứ hai được trả về.

IS NULLIS NOT NULL Điều kiện

Nếu chúng ta chỉ muốn tìm hiểu xem một giá trị có phải là null hay không , chúng ta có thể sử dụng IS NULL điều kiện so sánh. Ngoài ra, chúng ta có thể sử dụng IS NOT NULL để kiểm tra xem nó không phải là null .

Giả sử chúng ta có bảng sau:

SELECT * FROM Autoparts
WHERE Price IS NULL;

Kết quả:

ID OE # GIÁ MÔ HÌNH
2 62150B3278 - CAM KẾT
1 62150A3278 168 HILUX

Trong trường hợp này, PRICE cột chứa giá trị null cho hàng đầu tiên, nhưng không chứa giá trị cho hàng thứ hai.

Dưới đây là một ví dụ về việc sử dụng IS NULL so với bảng đó:

SELECT * FROM Autoparts
WHERE Price IS NULL;

Kết quả:

ID OE # GIÁ MÔ HÌNH
2 62150B3278 - CAM KẾT

Chỉ hàng có giá rỗng mới được trả lại.

Đây là những gì sẽ xảy ra khi chúng tôi sử dụng IS NOT NULL :

SELECT * FROM Autoparts
WHERE Price IS NOT NULL;

Kết quả:

ID OE # GIÁ MÔ HÌNH
1 62150A3278 168 HILUX

Hàng còn lại được trả lại.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm chứa () trong PL-SQL hoạt động như thế nào?

  2. Sắp xếp theo ngày trong tuần từ thứ 2 đến chủ nhật

  3. Cách tạo GUID trong Oracle?

  4. ORA-00918:cột được xác định không rõ ràng trong SELECT *

  5. Một tài liệu tham khảo tốt cho Oracle PL / SQL