基于第一个查找输出的第二次查找



使用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(因此不在表中(,则使用类别表中的描述。

最新更新