在SSIS中使用数据流任务,对于特定的Id我需要从两个表中获取描述。第一个表应该在ParentTable.Id上连接以获得ParentTabel.Description,第二个连接应该在SubCatagoryTable.ParentId列中获取SubCatagoryTable.Description。然后我必须保持非NULL值,除非两个描述都是NULL。
答案 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(不在表中) )然后使用类别表中的描述。