Cú pháp
SELECT COALESCE(cot_co_the_null, 0) AS ten_alias FROM bang;
Ví dụ: Cột Salary có NULL
Dữ liệu
+----+-------+--------+ | Id | Name | Salary | +----+-------+--------+ | 1 | John | NULL | | 2 | Carol | 5610 | | 3 | Bob | NULL | | 4 | David | NULL | +----+-------+--------+
Truy vấn
mysql> SELECT COALESCE(Salary, 0) AS CONVERT_NULL_TO_0 FROM convertNullToZeroDemo;
Kết quả
+--------------------+ | CONVERT_NULL_TO_0 | +--------------------+ | 0 | | 5610 | | 0 | | 0 | +--------------------+
COALESCE() vs IFNULL()
| Đặc điểm | COALESCE() | IFNULL() |
|---|---|---|
| Số tham số | 2 trở lên | Chính xác 2 |
| Chuẩn SQL | ANSI SQL | MySQL extension |
| Trả về | Giá trị đầu tiên không NULL | Tham số 1 nếu không NULL, ngược lại tham số 2 |
| Ví dụ mở rộng | COALESCE(a,b,c,0) | Không hỗ trợ |
Khi nào dùng cái nào?
- COALESCE(): Chuẩn SQL, nhiều fallback, code di động
- IFNULL(): Ngắn gọn, chỉ 2 giá trị, MySQL-only
Mẹo: Dùng trong SELECT, JOIN, WHERE, ORDER BY - bất kỳ đâu chấp nhận expression.