我想根据第一个表的输入在第二个表中实现输出。我想通过 SSIS 包执行此操作。
到目前为止,我尝试创建一个包,每当出现逗号 (,) 时都会出现绕过错误,但这没有用。也尝试过使用检查点,也无法那样实现。
最佳答案
第一种方法 - 您可以使用 SQL 语句实现此目的
在数据流任务中,在 OLEDB 源
中选择源类型为 SQL 命令
并使用以下命令 (替换 Tablename
和你的表名):
;WITH tmp(ID, DataItem, [Group]) AS(
SELECT ID, LEFT([Group], CHARINDEX(',', [Group] + ',') -1),
STUFF([Group], 1, CHARINDEX(',', [Group] + ','), '')
FROM [Tablename]
UNION ALL
SELECT ID, LEFT([Group], CHARINDEX(',',[Group]+',')-1),
STUFF([Group], 1, CHARINDEX(',',[Group]+','), '')
FROM tmp
WHERE [Group] > ''
)
SELECT ID, DataItem
FROM tmp
ORDER BY ID
引用资料
第二种方法——使用脚本组件
您可以引用此链接以获得详细答案:
关于sql - 在 SSIS 中将逗号分隔的字符串拆分为多行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48735446/