使用SQL案例何时使用日期

时间:2017-03-21 09:03:08

标签: 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

我想要做的是摆脱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'值,但这不是我想要的。

任何帮助表示赞赏

由于

2 个答案:

答案 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 - 编辑,应该工作

相关问题