使用SSIS在平面文件中写入重复的行

时间:2018-12-14 05:01:45

标签: ssis

我有一个源平面文件,我想读取每一行并为foreach行再创建两个重复的文件。实现此目的的最佳方法是什么?

示例我的平面文件

ID_Col  Country_Col
1       CountryA
2       CountryA
3       CountryC
4       CountryB

我想要什么:

 ID_Col  Country_Col
 1       CountryA
 1       CountryB
 1       CountryC
 2       CountryA
 2       CountryB
 2       CountryC
 3       CountryA
 3       CountryB
 3       CountryC
 4       CountryA
 4       CountryB
 4       CountryC

创建的行分别具有Country BCountry C的值。实现此目的的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

假设您将平面文件加载到暂存表中,因此已经有一个名为MyStagingTable的表,其中包含以下数据:

ID_Col  Country_Col
=====================
1       CountryA
2       CountryA
3       CountryC
4       CountryB

还假设您有一个名为AllCountries的表,

Country_Name
===============
CountryA
CountryB
CountryC

然后,您可以编写此查询以获取所需的内容:

SELECT S.ID_Col, C.Country_Name
FROM MyStagingTable S
CROSS JOIN 
AllCountries C

这意味着您可以将此查询放入执行SQL任务中以加载到表中

INSERT INTO FinalTable (ID_Col, Country_Name)
SELECT S.ID_Col, C.Country_Name
FROM MyStagingTable S
CROSS JOIN 
AllCountries C