使用SSIS中的数据流任务,对于特定的Id,我需要从两个表中获取描述。第一个表应该在 ParentTable.Id 上连接以获取 ParentTabel.Description,第二个连接应与 SubCatagoryTable.ParentId 列连接以获取 SubCatagoryTable.Description。然后我必须保留非 NULL 值,除非两个描述都是 NULL。
使用一个查询。
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
第二次查找:
将匹配时使用父设置在:
Select ID,descr
from ParentTable
现在使用派生 Descr: Descr = isnull(UsingSubDescr( ?使用父 : 使用子描述
对执行从类别表到子类别表的外部联接的查询执行一次查找,并合并描述列,以便如果子类别表中的描述为 NULL(因此不在表中(,则使用类别表中的描述。