我在编写的查询中有一个列,如下所示。
**RCPT_DATE**
NULL
2017-01-09 00:00:00.000
NULL
NULL
1900-01-01 00:00:00.000
1900-01-01 00:00:00.000
1900-01-01 00:00:00.000
2016-09-05 00:00:00.000
我想要做的是摆脱NULL
值并显示“不可用”并显示“No Rcpt”而不是“1900-01-01 00:00:00.000”值,以使其看起来更清晰。
我已尝试过,但它没有做任何事情
CASE c.RCPT_DATE
WHEN '1900-01-01 00:00:00.000' THEN ''
WHEN NULL Then 'xxx'
ELSE c.RCPT_DATE
END AS RCPT_DATE,
我试过了,
CASE c.RCPT_DATE
WHEN '1900-01-01 00:00:00.000' THEN NULL
这会打印NULL
而不是'1900-01-01 00:00:00.000'值,但这不是我想要的。
任何帮助表示赞赏
由于
答案 0 :(得分:8)
我看到这个工作的唯一方法是:
CASE
WHEN c.RCPT_DATE = '1900-01-01 00:00:00.000' THEN 'No RCPT'
WHEN C.RCPT_DATE IS NULL THEN 'Unavailable'
ELSE CONVERT(VARCHAR(30), C.RCPT_DATE, 121)
END
我添加了CONVERT()
,因为您无法在同一列中合并日期和字符串。
答案 1 :(得分:1)
尝试以下方法:
CASE c.RCPT_DATE
WHEN '1900-01-01 00:00:00.000' THEN 'No Rcpt'
ELSE ISNULL(CAST(c.RCPT_DATE as VARCHAR(50)),'Unavailable')
END AS RCPT_DATE
希望它有所帮助!
PS - 编辑,应该工作