我有一个DB2雇员表,其中有一列名为“名称”-varchar。它不是主键。 “空格”在此处也被视为有效值。此列下的某些字段只有空格。
现在,我需要一个查询,该查询通过将'Space'替换为NULL或任何其他默认值'NoName'来获取此雇员表中的所有值。
我有一个想法,就是用SELECT中的LTRIM函数截断值,这将导致“空字符串”,如果我能找到一些返回以“空字符串”作为输入的NULL的字符串操作函数,我可以使用结果是将COALESCE的IFNULL替换为'NoName'。
但是我不记得有任何这样的功能。你能帮我吗? 还是有其他方法可以做到这一点?
答案 0 :(得分:2)
您可以使用类似的内容:
Select case when <your column> = ' ' -- replace spaces
or <your column> is null -- replace nulls
or <your column> = '' -- replace empty strings
then 'no data' -- with string 'no data'
else <your column> -- if 'regular name' returns it
end as '<your column>' -- gives the column a meaningful title
from yourtable
当'space'或NULL或空字符串中的列返回字符串'no data'时,它将返回实际值
答案 1 :(得分:1)
select name, coalesce(nullif(name, ''), 'NoName') name_new
from table (values ' ', null, '', 'a') t(name);
NAME NAME_NEW
---- --------
NoName
- NoName
NoName
a a