我有一个名为“name”的列的db2 employee表。它不是主键。此处也将“space”视为有效值。此列下的某些字段只有空格。
现在,我需要一个查询,通过将“space”替换为null或任何其他默认值(如“noname”)来获取此employee表中的所有值。
我有一个想法,就是用select中的ltrim函数截断值,这将导致“空字符串”,如果我能找到一个字符串操作函数,该函数以“空字符串”作为输入返回null,那么我就可以使用coalesce的ifnull将null替换为“noname”。
但我记不起任何这样的功能。你能帮忙吗?
或者有其他方法来实现这个目标吗?

最佳答案

select name, coalesce(nullif(name, ''), 'NoName') name_new
from table (values ' ', null, '', 'a') t(name);

NAME NAME_NEW
---- --------
     NoName
-    NoName
     NoName
a    a

10-04 10:43