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

Cách hoạt động của SQLite Ifnull ()

SQLite ifnull() cho phép bạn thay thế các giá trị NULL bằng một giá trị khác.

Nó nhận hai đối số và trả về bản sao của đối số không phải NULL đầu tiên hoặc NULL nếu cả hai đối số đều NULL.

ifnull() hàm tương đương với coalesce() với hai đối số.

Ví dụ đơn giản

Dưới đây là một ví dụ đơn giản để chứng minh khái niệm này.

SELECT 
  ifnull(123, 0),
  ifnull(NULL, 0);

Kết quả:

ifnull(123, 0)  ifnull(NULL, 0)
--------------  ---------------
123             0              

Cột thứ hai là NULL và như vậy 0 đã được trả lại thay thế.

Ví dụ về cơ sở dữ liệu

Ví dụ này sử dụng ifnull() trong một truy vấn cơ sở dữ liệu. Điều này giải thích cách ifnull() có thể hữu ích khi truy vấn dữ liệu có thể chứa giá trị NULL.

Lấy bảng sau làm ví dụ:

ProductId   ProductName    Price     
----------  -------------  ----------
1           Widget Holder  139.5     
2           Widget Stick   89.75     
3           Foo Cap        11.99     
4           Free Widget    0.0       
5           Free Foobar    0.0       
6           Free Beer                

Hầu hết các sản phẩm đều có giá, nhưng giá của Bia miễn phí là NULL.

Chúng tôi có thể thay đổi giá trị này thành một giá trị mà chúng tôi chọn.

SELECT 
  ProductName,
  ifnull(Price, 0.0)
FROM Products;

Kết quả:

ProductName    ifnull(Price, 0.0)
-------------  ------------------
Widget Holder  139.5             
Widget Stick   89.75             
Foo Cap        11.99             
Free Widget    0.0               
Free Foobar    0.0               
Free Beer      0.0               

Bây giờ nó có cùng giá với các sản phẩm miễn phí khác.

Giá trị thay thế không nhất thiết phải là một số. Bạn cũng có thể thay thế nó bằng một chuỗi.

SELECT 
  ProductName,
  ifnull(Price, 'FREE!')
FROM Products;

Kết quả:

ProductName    ifnull(Price, 'FREE!')
-------------  ----------------------
Widget Holder  139.5                 
Widget Stick   89.75                 
Foo Cap        11.99                 
Free Widget    0.0                   
Free Foobar    0.0                   
Free Beer      FREE!                 

Khi cả hai đối số đều KHÔNG ĐẦY ĐỦ

Nếu cả hai đối số đều NULL, thì NULL được trả về.

SELECT ifnull(NULL, NULL);

Kết quả:

ifnull(NULL, NULL)
------------------
                  

  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 định dạng kết quả truy vấn SQLite trong chế độ TCL

  2. Sử dụng Robolectric với SQLiteAssetHelper

  3. Cách trích xuất ngày, tháng và năm từ một ngày trong SQLite

  4. 3 cách tìm hàng có chứa chữ hoa trong SQLite

  5. Trả lại thứ Hai đầu tiên của mỗi tháng trong SQLite