【发布时间】:2014-05-15 18:16:33
【问题描述】:
我有一个联系人列表,他们的信息来自两个不同的数据库,我已对其执行了 Union All 并对其进行了排序。现在我有一个汇总列表,如下所示:
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
....
....
....
基本上,我想使用一个脚本组件来比较 Rows Andrew Samples,如果列为空,则选择不是的,如果存在冲突数据,则选择 db2 中的数据作为替换它的数据.所以最终的结果应该是这样的:
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# 中开始编写脚本。我不知道如何选择行,然后比较行中的某些列。
【问题讨论】:
-
您是在查询中还是在 SSIS 中执行了 Union all?
-
我在 SSIS 数据流中执行了 Union All 作为转换
-
匹配标准是什么,电话和姓名?那可能会变得丑陋。
-
匹配是名称,然后它必须查看详细信息,其中它的 null 很简单,因为选择与该 rwo 相关的所有其他具有详细信息的列...但是其中有冲突的详细信息如果该行的两列都具有有效数据,则应将其替换为具有 db2 的列。
-
如上例所示。
标签: c# sql-server ssis