DB2字段值替换

时间:2019-01-23 08:34:14

标签: sql database string db2

我有一个DB2雇员表,其中有一列名为“名称”-varchar。它不是主键。 “空格”在此处也被视为有效值。此列下的某些字段只有空格。

现在,我需要一个查询,该查询通过将'Space'替换为NULL或任何其他默认值'NoName'来获取此雇员表中的所有值。

我有一个想法,就是用SELECT中的LTRIM函数截断值,这将导致“空字符串”,如果我能找到一些返回以“空字符串”作为输入的NULL的字符串操作函数,我可以使用结果是将COALESCE的IFNULL替换为'NoName'。

但是我不记得有任何这样的功能。你能帮我吗? 还是有其他方法可以做到这一点?

2 个答案:

答案 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