根据字段值拆分 ssis 中的行



在 SSIS 中 - 如何将行中的数据拆分为 2 行 例如:

从:

ID  Data
1   On/Off
2   On/Off

自:

ID  Data
1   On
1   Off
2   On
2   Off

解决方案概述

您必须使用脚本组件来实现此目的。 使用非同步输出缓冲区根据您自己的逻辑从 on 行生成多行。

解决方案详细信息

  1. 添加数据流任务
  2. DataFlow Task中添加Flat File SourceScript Component和目标
  3. 在脚本组件中,选择IDData列作为输入
  4. 转到Input and Outputs页面,单击"输出"并将"Synchronous Input"属性更改为"none
  5. 将两个输出列添加到IDDataOutput
  6. 将脚本语言更改为Visual Basic
  7. 在脚本编辑器中编写以下代码

    Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    Dim strValues() as String = Row.Data.Split(CChar("/")
    For each str as String in strValues
    Output0Buffer.AddRow()
    Output0Buffer.ID = Row.ID
    Output0Buffer.Data = str
    Next
    
    End Sub
    

附加信息

有关更多详细信息,请访问以下链接:

  • SSIS - 脚本组件,将单行拆分为多行
  • 每个单行输入从脚本组件输出多行

使用 T-SQL

根据您的评论,这是一个链接,其中包含如何使用SQL命令完成此操作的n个示例

  • 将逗号分隔的字符串转换为单独的行

最新更新