Hàm COALESCE() trả về giá trị đầu tiên KHÔNG NULL trong danh sách tham số.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable1336 (FirstName VARCHAR(20), SecondName VARCHAR(20));
Chèn dữ liệu (có NULL):
mysql> INSERT INTO DemoTable1336 VALUES('John', NULL), (NULL, 'Chris'), ('David', 'Mike');
Xem dữ liệu:
mysql> SELECT * FROM DemoTable1336;
+-----------+------------+ | FirstName | SecondName | +-----------+------------+ | John | NULL | | NULL | Chris | | David | Mike | +-----------+------------+
Lấy tên thay thế: ưu tiên FirstName, nếu NULL thì lấy SecondName:
mysql> SELECT COALESCE(FirstName, SecondName) AS AlternateName FROM DemoTable1336;
Kết quả:
+---------------+ | AlternateName | +---------------+ | John | | Chris | | David | +---------------+
So sánh:
COALESCE(a, b, c...): chuẩn SQL, nhiều tham số, trả về giá trị non-NULL đầu tiên.IFNULL(a, b): chỉ 2 tham số, chỉ MySQL.IF(a IS NULL, b, a): linh hoạt hơn nhưng dài hơn.
Ứng dụng: COALESCE(phone, email, 'Chưa cung cấp') hiển thị thông tin liên hệ ưu tiên.