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

ehh*_*ehh 3 sql db2 ibm-midrange

SELECT COALESCE(value, 'M') 
  FROM MyTable
Run Code Online (Sandbox Code Playgroud)

如果该值为空,则返回的值将设置为“ M”

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

IBM i版本:7.1

Tim*_*sen 5

DB2数据库似乎支持COALESCE。但无论如何,COALESCE仅适用于替换NULL,而不适用于空字符串。这里的一种选择是只使用一个CASE表达式:

SELECT CASE WHEN value <> '' THEN value ELSE 'M' END AS value
FROM [My Table];
Run Code Online (Sandbox Code Playgroud)

如果要同时处理NULL空字符串,请使用以下命令:

SELECT CASE WHEN COALESCE(value, '') <> '' THEN value ELSE 'M' END AS value
FROM [My Table];
Run Code Online (Sandbox Code Playgroud)


Gor*_*off 5

您可以使用NULLIF()

SELECT COALESCE(NULLIF(value, ''), 'M')
FROM [My Table]
Run Code Online (Sandbox Code Playgroud)