连接SSIS中多行的值

use*_*739 2 ssis

我有一个文件源,其中的数据如下所示:

ID BarcodeNumber
------------------------
1  123456789    
1  33    
2  987654321    
2  44
Run Code Online (Sandbox Code Playgroud)

我想得到如下数据:

ID BarcodeNumber
------------------------
1  12345678933    
2  98765432144
Run Code Online (Sandbox Code Playgroud)

有关如何实现这一目标的任何建议?

编辑:我想在数据流中这样做,因为这可能有数十亿行.

bil*_*nkc 6

期望的状态是对于每个ID,所有条形码将被连接在一起.

为此,您的数据必须按ID排序.如果文件尚未排序,则需要通过Sort任务运行它.

对数据进行排序后,您将需要在异步模式下添加脚本转换.它将是异步的,因为行数不会与行数相同.

伪代码就像是

If Row.ID <> LastID
    If LastID <> ""
        Output0Buffer.ID = LastID
        Output0Buffer.Barcodes = Barcodes
    LastID = Row.ID
    Barcodes = ""

Barcodes = Barcodes + Row.Barcodes
Run Code Online (Sandbox Code Playgroud)

注意事项

  • 上面的代码既不是C#也不是VB.NET,但逻辑应该是合理的
  • 如果你有数十亿行,那么你需要在这台机器上有一些严重的RAM,因为SSIS是一个内存中的转换系统.
  • 排序操作和此脚本任务将变得缓慢且占用内存,因为它们无法重用内存空间