【发布时间】:2023-04-08 04:54:01
【问题描述】:
我有一个 DB2 员工表,其中有一个名为“Name”的列 - varchar。它不是主键。 'Space' 在这里也被认为是有效值。此列下的某些字段只有空格。
现在我需要一个查询,通过将“Space”替换为 NULL 或任何其他默认值(例如“NoName”)来获取此员工表中的所有值。
我的一个想法是在 SELECT 中使用 LTRIM 函数截断值,这将导致“空字符串”,如果我能找到一些返回 NULL 并以“空字符串”作为输入的字符串操作函数,我可以使用COALESCE 的 IFNULL 将 NULL 替换为 'NoName' 作为结果。
但我想不起任何这样的功能。你能帮我吗? 或者有没有其他方法可以做到这一点?
【问题讨论】:
-
简单
COALESCE(columnname, 'NoName')? -
具有防止零长度名称的约束。 (还有
名称。) -
@jarlh coalesce 不会“删除”“空格”,但只有 NULL
-
@DDS,我知道。但为什么允许空间名称? (见我的第二条评论。)
-
@jarlh 因为根据 OP 这些已经存在