Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSIS转换(几乎像一个枢轴)_Sql_Sql Server_Ssis_Sql Server 2008 R2 - Fatal编程技术网

Sql SSIS转换(几乎像一个枢轴)

Sql SSIS转换(几乎像一个枢轴),sql,sql-server,ssis,sql-server-2008-r2,Sql,Sql Server,Ssis,Sql Server 2008 R2,我有以下数据进入SSIS Set Value --- ------- 1 One 1 Two 1 Three 2 Four 2 Five 2 Six 我想把它转换成阅读 Set ValueList --- ------- 1 One, Two, Three 2 Four, Five, Six 如何在SSIS中做到这一点?在数据流转换中有一个枢轴任务。您可以尝试一下,但我要警告您,我们对它的实现不太满意 或者,您可

我有以下数据进入SSIS

Set   Value
---   -------
1     One
1     Two
1     Three
2     Four
2     Five
2     Six
我想把它转换成阅读

Set   ValueList
---   -------
1     One, Two, Three
2     Four, Five, Six

如何在SSIS中做到这一点?

在数据流转换中有一个枢轴任务。您可以尝试一下,但我要警告您,我们对它的实现不太满意

或者,您可以使用数据流将数据放入临时表中,并使用SQL进行透视,或者在用于创建传入数据源的SQL中进行透视。如果要在SQl代码中执行此操作,这可能会有所帮助:

select 1 as Item 
into #test 
union select 2 
union select 3 
union select 4 
union select 5 

select STUFF((SELECT  ', ' + cast(Item as nvarchar) 
        FROM #test 
        FOR XML PATH('')), 1, 1, '') 

我使用脚本组件跨行进行字符串连接

string TagId = "-1";
string TagList = "";
bool IsFirstRow = true;

public override void Input0_ProcessInputRow(Input0Buffer Row)
{
    if (Row.TAGSId.ToString() == TagId)
    {
        TagList += Row.TAG + ",";
    }
    else
    {
        if (IsFirstRow)
        {
            Output0Buffer.AddRow();
            IsFirstRow = false;
        }

        TagId = Row.TAGSId.ToString();
        TagList = Row.TAG.ToString() + ",";
    }

    Output0Buffer.TagId = int.Parse(TagId);
    Output0Buffer.TagList = TagList;
    Output0Buffer.TagLength = TagList.Length;

    //variable used in subsequent queries
    this.Variables.TagList = TagList;
}

因为它来自一个XML文件,所以我无法使用XML路径技术。我使用脚本组件来实现我想要的。