我的代码如下:
Insert Into dbo.database (Period, Amount)
Select coalesce (date_1, date_2, date_3), Amount FROM Source.dbo.[10]
我是100%在3个变量之一中存在一个值:date_1,date_2,date_3,all as strings(var char 100),但是当我调用Period时,我仍然会得到空白。
任何帮助?
答案 0 :(得分:1)
Coalesce旨在从列表中返回第一个NOT NULL字段,如果没有字段为NOT NULL,则返回NULL,请点击链接获取完整详细信息http://msdn.microsoft.com/en-us/library/ms190349.aspx
我猜你在其中一列中有空值('')而不是NULL值。如果您尝试查找第一个非空非空列,则可以使用case语句。
select
case
when len(rtrim(ltrim(date_1))) > 0 then date_1
when len(rtrim(ltrim(date_2))) > 0 then date_2
when len(rtrim(ltrim(date_3))) > 0 then date_3
else null
end,
Amount
from Source.dbo.[10]