合并功能在存在时不从系列中选择数据值

时间:2013-10-16 23:42:10

标签: sql sql-server

我的代码如下:

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时,我仍然会得到空白。

任何帮助?

1 个答案:

答案 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]