【发布时间】:2012-03-22 13:48:15
【问题描述】:
如何用空字符串替换 select 中的 NULL 值? 输出“NULL”值看起来不太专业。
这是非常不寻常的,根据我的语法,我希望它可以工作。 我希望能解释为什么它没有。
select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test;
原始表格的外观、我想要的以及实际打印的示例:
original wanted what actually prints
-------- ------ ---------------------
value1 value1
NULL NULL
value2 value2
NULL NULL
正如您所看到的,它与我想要的相反,因此我尝试将 IS NULL 翻转为 IS NOT NULL,当然这并没有解决它。我也试过交换when case的位置,还是不行。
似乎下面给出的 3 个解决方案都可以完成任务。
select if(prereq IS NULL ," ",prereq ) from test
select IFNULL(prereq,"") from test
select coalesce(prereq, '') from test
【问题讨论】:
-
我认为
(prereq IS NULL)应该只是阅读NULL