【发布时间】:2017-07-18 11:03:38
【问题描述】:
在 SSIS 中使用数据流任务,对于特定的 Id,我需要从两个表中获取描述。第一个表应该在 ParentTable.Id 上加入以获取 ParentTabel.Description,第二个加入应该与 SubCatagoryTable.ParentId 列获取子类别表。描述。然后我必须保留非 NULL 值,除非两个描述都是 NULL。
【问题讨论】:
标签: ssis
在 SSIS 中使用数据流任务,对于特定的 Id,我需要从两个表中获取描述。第一个表应该在 ParentTable.Id 上加入以获取 ParentTabel.Description,第二个加入应该与 SubCatagoryTable.ParentId 列获取子类别表。描述。然后我必须保留非 NULL 值,除非两个描述都是 NULL。
【问题讨论】:
标签: ssis
使用一个查询。
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
根据您的评论更新:
使用两次查找(将不匹配设置为忽略,这将为不匹配留下空值:
第一次查找:
Set 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
现在使用派生描述: 描述 = isnull(UsingSubDescr) ? UsingParent : UsingSubDescr
【讨论】:
针对从类别表到子类别表执行 OUTER JOIN 并 COALESCE 描述列的查询进行单次查找,这样如果子类别表中的描述为 NULL(因此不在表中) 然后使用类别表中的描述。
【讨论】: