SQL CASE语句中NULL值替换及原值显示异常问题求助
解决你的SQL CASE语句显示异常问题
嘿,这个小问题其实是引号用错导致的!你现在的写法里,把 ELSE 后面的字段名 table_1.col_1 用单引号括起来了,数据库会把它当成字符串常量来处理,所以不管原字段是什么值,都会显示成字符串 table_1.col_1。
正确的写法应该是这样:
CASE WHEN table_1.col_1 IS NULL THEN 'NULL' ELSE table_1.col_1 END AS col_1
或者如果你的数据库允许(比如PostgreSQL、MySQL等),别名也可以用双引号括起来(避免和关键字冲突):
CASE WHEN table_1.col_1 IS NULL THEN 'NULL' ELSE table_1.col_1 END AS "col_1"
关键点说明:
- 单引号
' '是用来包裹字符串常量的,比如你要显示的'NULL'; - 字段名不需要用单引号包裹,直接写
table_1.col_1就会引用表中对应的字段值; - 别名如果是普通的字段名(没有空格或关键字),可以不用引号,用的话推荐双引号更规范。
这样修改后,当col_1为NULL时会显示字符串'NULL',非NULL时就会正常显示字段的原始TEXT值啦~
内容的提问来源于stack exchange,提问作者Zee
相关产品推荐
相关产品推荐

