长话短说,如果存储的值为空,我需要返回一个 varchar 值,但要么给我带来一个 NULL 值,要么返回 varchar 值,这里是代码。
在表中我有一些字段为空,一些字段为数据
CASE WHEN DS.DBIRTH+DS.MBIRTH+DS.YBIRTH =
'' THEN CONVERT(VARCHAR(10),PT.CLIENTDBIRTHDATE,111)
ELSE 'INPUT DATE OF BIRTH'
CASE WHEN PT.CLIENTBIRTHDATE IS NULL THEN ''
ELSE '1800-01-01'
END
END AS BFIELD
这给我带来了这样的东西
NULL
1917/05/02
NULL
1923/02/02
1967/01/05
NULL
但我需要这样的东西
01/01/1800
1917/05/02
01/01/1800
1923/02/02
1967/01/05
01/01/1800
抱歉,这个问题太菜鸟了
最佳答案
您当前的 case
陈述看起来不正确。我想你想要做的是将结果包装在 coalesce
中:
COALESCE(CASE
WHEN DS.DBIRTH+DS.MBIRTH+DS.YBIRTH = ''
THEN CONVERT(VARCHAR(10),PT.CLIENTDBIRTHDATE,111)
ELSE 'INPUT DATE OF BIRTH'
END, '01/01/1800') AS BFIELD
关于mysql - 嵌套情况下的 NULL 值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979470/