我有一个看起来像这样的小查询:
SELECT
CS.ID,
CS.Import_Date,
CS.Secondary_Date
FROM
Center_Summary CS
ORDER BY CS.Import_Date
哪个返回如下值:
我想用01/01/1900
的值替换作为05/01/2019
拉出的这些“空”值。在这种情况下,是因为ID
和Import_Date
匹配,所以Secondary_Date
也应该匹配。我曾经考虑使用REPLACE()
(REPLACE(CS.Secondary_Date, '01/01/1900', ???
),但是我不确定如何编写逻辑以基于Secondary_Date
从列ID
中提取匹配值和Import_Date
-我应该在这里使用什么功能?
当前的状态(我要替换的红色日期):
我的预期结果是:
答案 0 :(得分:0)
为什么不将UPDATE
与WHERE
一起使用?
UPDATE dbo.YourTable
SET SecondaryDate = ImportDate
WHERE SecondaryDate = '19000101';
答案 1 :(得分:0)
“空”值最好用NULL
表示。我建议将它们转换为NULL
:
nullif(secondary_date, '1900-01-01')
如果您确实想要另一个值,则可以使用coalesce()
或case
表达式:
coalesce(nullif(secondary_date, '1900-01-01'), '2019-05-01')
但是,我通常不喜欢代码中的这种神奇价值。