Kết hợp CASE WHEN với TRIM() và IFNULL() để phát hiện chuỗi rỗng hoặc NULL, sau đó thay bằng giá trị mặc định.
Ví dụ minh họa
Tạo bảng có giá trị rỗng và NULL:
CREATE TABLE DemoTable (Name VARCHAR(20));
INSERT INTO DemoTable VALUES ('Chris'), (''), ('David'), ('');
Thay giá trị rỗng/NULL bằng 'Carol Taylor':
SELECT CASE TRIM(IFNULL(Name, ''))
WHEN '' THEN 'Carol Taylor'
ELSE Name
END AS Name
FROM DemoTable;
Kết quả
| Name (gốc) | Name (kết quả) |
|---|---|
| Chris | Chris |
| (rỗng) | Carol Taylor |
| David | David |
| (rỗng) | Carol Taylor |
Giải thích
IFNULL(Name, ''): Chuyển NULL thành chuỗi rỗng.TRIM(...): Loại bỏ khoảng trắng đầu/cuối (nếu có).CASE WHEN ... = '' THEN ...: Kiểm tra chuỗi rỗng sau xử lý.
Cách thay thế gọn hơn: COALESCE + NULLIF
SELECT COALESCE(NULLIF(TRIM(Name), ''), 'Carol Taylor') AS Name FROM DemoTable;
NULLIF(TRIM(Name), ''): Trả về NULL nếu chuỗi rỗng sau TRIM.COALESCE(..., 'Carol Taylor'): Trả về giá trị đầu tiên không NULL.
Cách khác: IF()
SELECT IF(TRIM(IFNULL(Name, '')) = '', 'Carol Taylor', Name) AS Name FROM DemoTable;
Khuyên dùng: COALESCE(NULLIF(TRIM(cot), ''), 'default') — chuẩn ANSI, ngắn gọn, dễ đọc.