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

Cách Coalesce () hoạt động trong SQLite

Trong SQLite, coalesce() hàm trả về một bản sao của đối số không phải NULL đầu tiên của nó hoặc NULL nếu tất cả các đối số là NULL.

Nó tương tự với ifnull() hàm, ngoại trừ coalesce() chấp nhận nhiều hơn hai đối số (ifnull() chỉ chấp nhận hai đối số).

Cú pháp

Cú pháp như sau:

coalesce(X,Y,...)

Điều này có nghĩa là, bạn có thể cung cấp hai hoặc nhiều đối số. Sau đó, hàm sẽ trả về giá trị đầu tiên không phải là NULL.

Ví dụ

Đây là một ví dụ để chứng minh.

SELECT coalesce(NULL,1);

Kết quả:

1

Ở đây tôi đã cung cấp hai đối số và coalesce() đã trả về giá trị không phải NULL đầu tiên, trong trường hợp này là 1 .

Các ví dụ khác

Dưới đây là các biến thể khác để chứng minh cách coalesce() xử lý từng trường hợp.

.mode line
SELECT
  coalesce(NULL,NULL,1,2,3),
  coalesce(1,NULL,2,3),
  coalesce(NULL,3,2,1),
  coalesce(1,2,3,NULL),
  coalesce(NULL,NULL);

Kết quả:

coalesce(NULL,NULL,1,2,3) = 1
     coalesce(1,NULL,2,3) = 1
     coalesce(NULL,3,2,1) = 3
     coalesce(1,2,3,NULL) = 1
      coalesce(NULL,NULL) = 

Vì vậy, nó rất đơn giản. Nó chỉ trả về đối số đầu tiên không phải là NULL, bất kể có bao nhiêu đối số được cung cấp.

Cũng lưu ý rằng nếu tất cả các đối số là NULL, thì nó trả về NULL.

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

Dưới đây là một ví dụ về việc sử dụng coalesce() trong một truy vấn cơ sở dữ liệu.

.mode column
SELECT 
  CustomerId, 
  coalesce(Fax, 'N/A') AS Fax
FROM Customer
LIMIT 5;

Kết quả:

CustomerId  Fax          
----------  -------------
1           +55 (12) 3923
2           N/A          
3           N/A          
4           N/A          
5           +420 2 4172 5

Đây là giao diện của nó khi không sử dụng coalesce() chức năng:

.mode column
SELECT 
  CustomerId, 
  Fax
FROM Customer
LIMIT 5;

Kết quả:

CustomerId  Fax               
----------  ------------------
1           +55 (12) 3923-5566
2                             
3                             
4                             
5           +420 2 4172 5555  

Vì vậy, coalesce() hàm có thể hữu ích để trả về một chuỗi có nghĩa thay vì NULL.

Với ba lập luận

Dưới đây là một ví dụ về việc thêm đối số thứ ba. Điều này cho phép chúng tôi chạy qua nhiều tùy chọn trước khi đến NULL.

SELECT 
  CustomerId, 
  coalesce(Fax, Email, 'N/A') AS "Fax/Email"
FROM Customer
LIMIT 5;

Kết quả:

CustomerId  Fax/Email             
----------  ----------------------
1           +55 (12) 3923-5566    
2           [email protected] 
3           [email protected]   
4           [email protected] 
5           +420 2 4172 5555      

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 cách để kích hoạt Word Wrap trong SQLite

  2. Ormlite hoặc sqlite Cái nào tốt cho góc nhìn Android?

  3. Cách đính kèm tệp .db với một android .apk khác

  4. Sự khác biệt giữa TÀI LIỆU THAM KHẢO có hoặc không có KHÓA NGOẠI LỆ là gì

  5. 3 cách thay thế NULL bằng “N / A” trong SQLite