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

Sự khác biệt giữa hai ifnull và kết hợp trong mysql là gì?

Sự khác biệt chính giữa hai là IFNULL hàm nhận hai đối số và trả về đối số đầu tiên nếu nó không phải là NULL hoặc thứ hai nếu cái đầu tiên là NULL .

COALESCE hàm có thể nhận hai hoặc nhiều tham số và trả về tham số không phải NULL đầu tiên hoặc NULL nếu tất cả các tham số đều rỗng, ví dụ:

SELECT IFNULL('some value', 'some other value');
-> returns 'some value'

SELECT IFNULL(NULL,'some other value');
-> returns 'some other value'

SELECT COALESCE(NULL, 'some other value');
-> returns 'some other value' - equivalent of the IFNULL function

SELECT COALESCE(NULL, 'some value', 'some other value');
-> returns 'some value'

SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'

CẬP NHẬT: MSSQL kiểm tra loại và tham số chặt chẽ hơn. Hơn nữa, nó không có IFNULL nhưng thay vào đó là ISNULL , cần biết các loại đối số. Do đó:

SELECT ISNULL(NULL, NULL);
-> results in an error

SELECT ISNULL(NULL, CAST(NULL as VARCHAR));
-> returns NULL

Ngoài ra COALESCE hàm trong MSSQL yêu cầu ít nhất một tham số khác rỗng, do đó:

SELECT COALESCE(NULL, NULL, NULL, NULL, NULL);
-> results in an error

SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql Nối hai cột trong khi tìm kiếm bằng LIKE

  2. mysqldump toàn bộ cấu trúc nhưng chỉ dữ liệu từ các bảng đã chọn trong một lệnh duy nhất

  3. Cột thời gian CakePHP 3 được thêm ngày

  4. MYSQL Chọn Truy vấn với SUM ()

  5. Bẫy cảnh báo MySQL bằng Python