我有一个包含两个不同数据列的表格,我希望将其合并为一列l.date_Combined
。
首先考虑l.date_time_ic
中是否有日期。如果为空,请在l.date_time_mc
中查找日期。将结果放入l.date_Combined
。
我能够执行where子句,但我不知道如何为组合字段构建更新逻辑。
select
l.id,
l.date_time_ic,
l.date_time_mc
from
new.customers l
where
((l.date_time_ic between '4/1/2018' and '4/30/2018') or
(l.date_time_mc between '4/1/2018' and '4/30/2018' and
l.date_time_ic is null));
答案 0 :(得分:1)
我相信你只想要coalesce()
。更重要的是,使用ISO / ANSI标准格式表示您的日期,例如YYYY-MM-DD:
select l.id,
coalesce(l.date_time_ic, l.date_time_mc) as thedate
from new.customers l
where coalesce(l.date_time_ic, l.date_time_mc) >= '2018-04-01' and
coalesce(l.date_time_ic, l.date_time_mc) < '2018-05-01' ;
您会注意到我更改了日期逻辑以使用比较而不是between
。 Here是关于该主题的好博客。博客中的大部分内容适用于所有数据库,而不仅仅适用于SQL Server。