Hàm NULLIF(gia_tri_1, gia_tri_2) trả về NULL nếu hai tham số bằng nhau, ngược lại trả về gia_tri_1. Dùng NULLIF(cot, 0) để biến 0 thành NULL.
Cú pháp
SELECT *, NULLIF(ten_cot, 0) AS ten_alias FROM ten_bang;
Ví dụ minh họa
Tạo bảng Replace0WithNULLDemo:
CREATE TABLE Replace0WithNULLDemo (
Id INT NOT NULL AUTO_INCREMENT,
Name VARCHAR(20), Marks INT, PRIMARY KEY (Id)
);
INSERT INTO Replace0WithNULLDemo (Name, Marks) VALUES
('John',76), ('Carol',86), ('Sam',0), ('Mike',0), ('Larry',98), ('Bob',0);
Truy vấn thay 0 → NULL
SELECT *, NULLIF(Marks, 0) AS ReplaceZeroWithNULL
FROM Replace0WithNULLDemo;
Kết quả:
+----+-------+-------+---------------------+
| Id | Name | Marks | ReplaceZeroWithNULL |
+----+-------+-------+---------------------+
| 1 | John | 76 | 76 |
| 2 | Carol | 86 | 86 |
| 3 | Sam | 0 | NULL |
| 4 | Mike | 0 | NULL |
| 5 | Larry | 98 | 98 |
| 6 | Bob | 0 | NULL |
+----+-------+-------+---------------------+
Ứng dụng: Tránh hiển thị 0 vô nghĩa trong báo cáo, tính toán AVG() bỏ qua 0 (vì AVG bỏ qua NULL), v.v.