AS400中的空字符串是否与COALESCE具有类似的功能

时间:2018-05-30 07:53:46

标签: sql db2 ibm-midrange

SELECT COALESCE(value, 'M') 
  FROM MyTable

如果值为null,则返回的值将设置为" M"

如果值为空字符串,是否有与COALESCE类似的功能?

IBM i版本:7.1

3 个答案:

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