Sin*_*erv 1 sql sql-server case case-when
我在我写的查询中有一个列,如下所示.
**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
Run Code Online (Sandbox Code Playgroud)
我想要做的是摆脱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,
Run Code Online (Sandbox Code Playgroud)
我试过了,
CASE c.RCPT_DATE
WHEN '1900-01-01 00:00:00.000' THEN NULL
Run Code Online (Sandbox Code Playgroud)
这打印NULL而不是'1900-01-01 00:00:00.000'值,但这不是我想要的.
任何帮助赞赏
谢谢
我看到这个工作的唯一方法是:
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
Run Code Online (Sandbox Code Playgroud)
我添加了CONVERT()因为你不能在同一列中组合日期和字符串.