基于第一个查找输出

时间:2017-07-18 11:03:39

标签: ssis

在SSIS中使用数据流任务,对于特定的Id我需要从两个表中获取描述。第一个表应该在ParentTable.Id上连接以获得ParentTabel.Description,第二个连接应该在SubCatagoryTable.ParentId列中获取SubCatagoryTable.Description。然后我必须保持非NULL值,除非两个描述都是NULL。

2 个答案:

答案 0 :(得分:3)

使用一个查询。

select coalesce(sub.ID,cat.ID) as ID,coalesce(sub.Descr,cat.Descr) as Descr
from CategoryTable cat
left join SubCatagoryTable sub on cat.ID=sub.ParentID

根据您的评论进行更新:

使用两个查找(将不匹配设置为忽略,这将留下无匹配的空值:

首先查找:

将UsingSubDescr设置为等于:

select sub.ID,cat.Descr as Descr
from CategoryTable cat
    join SubCatagoryTable sub on cat.ID=sub.ParentID

第二次查询:

在匹配时设置UsingParent:

Select ID,descr
from ParentTable

现在使用derive Descr: Descr = isnull(UsingSubDescr)? UsingParent:UsingSubDescr

答案 1 :(得分:1)

针对从类别表到子类别表执行OUTER JOIN的查询以及COALESCE描述列执行单个查找,以便如果子类别表中的描述为NULL(不在表中) )然后使用类别表中的描述。