如何用空字符串替换select中的NULL值?输出"NULL"值看起来不太专业.
这是非常不寻常的,根据我的语法,我希望它能够工作.希望得到解释为什么它没有.
select CASE prereq WHEN (prereq IS NULL) THEN " " ELSE prereq end from test;
Run Code Online (Sandbox Code Playgroud)
原始表的样子,我想要的以及实际打印的示例:
original wanted what actually prints
-------- ------ ---------------------
value1 value1
NULL NULL
value2 value2
NULL NULL
Run Code Online (Sandbox Code Playgroud)
你可以看到它与我想要的相反,因此我尝试将IS NULL翻转为IS NOT NULL,当然那并没有解决它,也尝试交换当案例的位置,这是行不通的.
编辑:看来下面给出的3个解决方案都可以完成任务.问候
select if(prereq IS NULL ," ",prereq ) from test
select IFNULL(prereq,"") from test
select coalesce(prereq, '') from test
Run Code Online (Sandbox Code Playgroud)
JSc*_*Ced 104
如果你真的必须输出包括NULL值的每个值:
select IFNULL(prereq,"") from test
Run Code Online (Sandbox Code Playgroud)
Mos*_*cho 74
SELECT COALESCE(prereq, '') FROM test
Run Code Online (Sandbox Code Playgroud)
Coalesce将返回从左到右传递给它的第一个非null参数.如果所有arguemnts都为null,它将返回null,但我们在那里强制一个空字符串,因此不会返回null值.
另请注意,标准SQL支持COALESCE运算符.这不是IFNULL的情况.因此,使用前者是一个好习惯.另外,请记住,COALESCE支持2个以上的参数,它将迭代它们,直到找到非空的重合.
小智 14
试试以下;
select if(prereq IS NULL ," ",prereq ) from test
Run Code Online (Sandbox Code Playgroud)
select IFNULL(`prereq`,'') as ColumnName FROM test
Run Code Online (Sandbox Code Playgroud)
此查询正在选择“prereq”值,如果其中任何一个值为空,它会根据您的喜好显示一个空字符串 因此,它显示所有值,但空值显示为空白
| 归档时间: |
|
| 查看次数: |
130779 次 |
| 最近记录: |