【发布时间】:2013-07-19 04:22:29
【问题描述】:
我有一个下面的 MySQL 表
CREATE TABLE Test(Name VARCHAR(30));
INSERT INTO Test VALUES ('Name1'),
('Name2'),
(null),
('Name3'),
(null),
('Name4');
现在当该行为 Null 时,我希望它在前端显示为空,否则该行中包含的值
我尝试了以下查询,但没有成功
SELECT CASE Name
WHEN NULL
THEN '' ELSE Name
END AS Names
FROM Test
输出
Name1
Name2
Name3
Name4
SQLFiddle的链接
感谢回复
【问题讨论】:
-
您已要求在 Name 为 NULL 的情况下报告一个空字符串。将您的空字符串更改为“空”。但是你应该看看函数“COALESCE”。它比 case 语句短。
-
Nps。虽然不是最好的回答!我假设你的“输出”是你得到的,而不是你想要的。另外,假设您确实想要“空”,而不是空字符串。尽管如此,coalesce 还是很棒的(比 IFNULL 更棒!)。