Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Chuyển NULL thành 0 trong MySQL dùng COALESCE()

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ểmCOALESCE()IFNULL()
Số tham số2 trở lênChính xác 2
Chuẩn SQLANSI SQLMySQL extension
Trả vềGiá trị đầu tiên không NULLTham số 1 nếu không NULL, ngược lại tham số 2
Ví dụ mở rộngCOALESCE(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.