使用 SQL Case When 和日期
Using SQL Case When with dates
我在查询中有一列,如下所示。
**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
值并显示 'Unavailable' 并显示 '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' 值,但这不是我想要的。
感谢任何帮助
谢谢
尝试以下操作:
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 - 已编辑,应该有效
我看到这个工作的唯一方法是:
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()
,因为您不能在同一列中组合日期和字符串。
我在查询中有一列,如下所示。
**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
值并显示 'Unavailable' 并显示 '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' 值,但这不是我想要的。
感谢任何帮助
谢谢
尝试以下操作:
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 - 已编辑,应该有效
我看到这个工作的唯一方法是:
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()
,因为您不能在同一列中组合日期和字符串。