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

Thay thế 0 bằng NULL trong MySQL với NULLIF()

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.