首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义脚本组件SSIS用于筛选和合并重复项

问自定义脚本组件SSIS用于筛选和合并重复项
EN

Stack Overflow用户
提问于 2014-05-15 18:16:33
回答 1查看 1.1K关注 0票数 0

我有一个从两个不同的数据库中获取他们信息的联系人列表,我已经对这些数据库执行了Union并对其进行了排序。现在我有了一个聚合列表,如下所示:

代码语言:javascript
复制
contactid   add1            add2     city     phone        fullname     source
-----      -----            -----    -----    -----         -----        ----- 
BOOG1     1598 Tree Drive  Apt:215    NYC  718-888-9989   Andrew Sample    DB1
NULL      NULL             Apt:215         718-888-9989   Andrew Sample    DB2

BOOG6     1598 Tree Drive  Apt:215    NYC  718-888-8888   Andria Toefield  DB1
NULL      NULL  Apt:215                     718-888-9888   Andria Toefield  DB2
....
....
....

基本上,我想使用一个脚本组件,它将比较安德鲁示例的行,如果列是空的,那么选择不是的;如果有冲突的数据,则从db2中选择数据作为替换数据。因此,最终结果应该如下所示:

代码语言:javascript
复制
contactid   add1            add2     city     phone        fullname  
-----      -----            -----    -----    -----         -----          
BOOG1   1598 Tree Drive   Apt:215    NYC  718-888-9989   Andrew Sample    

BOOG6   1598 Tree Drive   Apt:215    NYC  718-888-9888    Andria Toefield  
....
....
....

我不知道如何在C#中开始编写脚本。我不知道如何选择行,然后比较行中的某些列。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-16 03:39:01

我不会用脚本任务来尝试这一点--跨行比较太困难了。

我将向名称列上的组添加一个模糊分组转换。这将添加一个_key_out列(以及其他列)。我会将结果放到SQL表中。

然后,我将在_key_out列上编写一个包含组BY的复杂SQL查询,并为其他列编写CASE语句,以解决您的“缺失”和“冲突”要求。

一旦你把它指向任何规模的真实世界数据集,这种设计的好处就会得到真正的回报。您无疑会遇到上面示例中更复杂的场景,例如,DB1有2个"John“行,DB2有3个"John”行。您将能够调整模糊分组参数和/或添加辅助模糊分组以打破联系。

在此过程中,您可以查询中间SQL表中的结果,以优化这些问题的处理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23685804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档