本文介绍了串联SSIS中多行中的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个文件源,其中的数据如下所示:
ID BarcodeNumber
------------------------
1 123456789
1 33
2 987654321
2 44
我想按如下方式获取数据:
ID BarcodeNumber
------------------------
1 12345678933
2 98765432144
有关于如何实现此目标的建议吗?
编辑:我希望在数据流中执行此操作,因为这可能有数十亿行。
推荐答案
所需的状态是,对于每个ID,所有条形码都将串联在一起。
若要完成此操作,您的数据必须按ID排序。如果文件尚未排序,则需要通过排序任务运行它。
一旦您对数据进行了排序,则需要在Asynchronous mode中添加脚本转换。它将是异步的,因为输入的行数与输出的行数不同。psuedo代码类似于
If Row.ID <> LastID
If LastID <> ""
Output0Buffer.ID = LastID
Output0Buffer.Barcodes = Barcodes
LastID = Row.ID
Barcodes = ""
Barcodes = Barcodes + Row.Barcodes
警告
- 上面的代码既不是C#也不是VB.NET,但是逻辑应该是健全的
- 如果您有数十亿行,则此计算机上将需要一些重要的RAM,因为SSIS是内存转换系统。
- 排序操作和此脚本任务将很慢且占用大量内存,因为它们不能重用内存空间
这篇关于串联SSIS中多行中的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!