【发布时间】:2014-08-01 15:44:03
【问题描述】:
我在数据库中有一个包含大量空/空行的字段。我正在尝试创建一个 case 语句,将其更改为“空字段”或类似的东西,以便当它显示给用户时,他们将指示该行没有该列的数据,但由于某种原因它不是在职的。当我选择没有 case 语句的数据时,我会得到一个字符串或一个空字段。当我添加 case 语句时,每一行都返回为 {null},无论该列中的内容如何。我曾多次使用类似的案例陈述,但这让我感到困惑。
SELECT CASE
WHEN col_name = TRIM('') THEN 'Empty Field'
END col_name
FROM table_name
我还尝试用LIKE 代替等号以及NULL 代替TRIM('')
工作解决方案:
SELECT NVL(TRIM(col_name), 'Empty Field') AS col_name
FROM table_name
【问题讨论】:
-
您的代码中没有
CAST语句。您的意思是在问题标题中写上CASE吗? (而TRIM('')真的没有意义) -
操作。是的,我的意思是说
CASE,而不是CAST,并更正了它。为什么TRIM('')不做。我要更改的列是空的或 null。 -
trim()从字符串中删除前导和尾随空格。字符串''没有任何空格,所以不需要在上面调用trim()。