长话短说我需要返回一个varchar值,如果存储的值为null但是eithers为我带来一个NULL值或varchar值这里是代码。
表中的我有一些字段为null,有些字段有数据
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
抱歉超级小道问题
答案 0 :(得分:0)
您当前的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
答案 1 :(得分:0)
如果没有Case语句,它应该像......一样简单。
select CONVERT(VARCHAR(10) ,
CAST(ISNULL(DateColumn,'01/01/1800') AS DATE)
,111)