根据字段值拆分ssis中的行

时间:2018-01-11 11:48:58

标签: sql-server ssis etl

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

FROM:

ID  Data
1   On/Off
2   On/Off

TO:

ID  Data
1   On
1   Off
2   On
2   Off

1 个答案:

答案 0 :(得分:0)

解决方案概述

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

解决方案详情

  1. 添加DataFlow任务
  2. DataFlow Task添加Flat File SourceScript Component和目的地
  3. 在脚本组件中,选择IDData列作为输入
  4. 转到Input and Outputs页面,点击输出并将Synchronous Input属性更改为none
  5. 将两个输出列IDData添加到Output
  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
    
  8. 其他信息

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

    使用T-SQL

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