SELECT COALESCE(value, 'M')
FROM MyTable
如果值为null,则返回的值将设置为" M"
如果值为空字符串,是否有与COALESCE类似的功能?
IBM i版本:7.1
答案 0 :(得分:4)
DB2数据库appears to support COALESCE。但无论如何,COALESCE
只能用于替换NULL
,而不是空字符串。这里的一个选择是只使用CASE
表达式:
SELECT CASE WHEN value <> '' THEN value ELSE 'M' END AS value
FROM [My Table];
如果要同时处理NULL
和空字符串,请使用:
SELECT CASE WHEN COALESCE(value, '') <> '' THEN value ELSE 'M' END AS value
FROM [My Table];
答案 1 :(得分:4)
您可以使用NULLIF()
:
SELECT COALESCE(NULLIF(value, ''), 'M')
FROM [My Table]
答案 2 :(得分:1)
没有
只需使用CASE表达式,假设值可以为NULL或为空,请先检查NULL。
case
when value is NULL then 'M'
when value = '' then 'M'
else value
end as newValue