AS400中空字符串是否有类似COALESCE的函数
Is there a similar function to COALESCE for empty string in AS400
SELECT COALESCE(value, 'M')
FROM MyTable
如果值为 null,则返回值将设置为 "M"
如果值为空字符串,是否有类似COALESCE的函数?
IBM i 版本:7.1
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];
没有
只需使用 CASE 表达式,假设值可能为 NULL 或空,首先检查 NULL。
case
when value is NULL then 'M'
when value = '' then 'M'
else value
end as newValue
您可以使用 NULLIF()
:
SELECT COALESCE(NULLIF(value, ''), 'M')
FROM [My Table]
SELECT COALESCE(value, 'M')
FROM MyTable
如果值为 null,则返回值将设置为 "M"
如果值为空字符串,是否有类似COALESCE的函数?
IBM i 版本:7.1
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];
没有
只需使用 CASE 表达式,假设值可能为 NULL 或空,首先检查 NULL。
case
when value is NULL then 'M'
when value = '' then 'M'
else value
end as newValue
您可以使用 NULLIF()
:
SELECT COALESCE(NULLIF(value, ''), 'M')
FROM [My Table]