使用SQL案例何时使用日期

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'值,但这不是我想要的.

任何帮助赞赏

谢谢

Rad*_*hiu 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
Run Code Online (Sandbox Code Playgroud)

我添加了CONVERT()因为你不能在同一列中组合日期和字符串.