Sql server 如何告诉SSIS unpivot在值为null时生成行

Sql server 如何告诉SSIS unpivot在值为null时生成行,sql-server,tsql,ssis,unpivot,Sql Server,Tsql,Ssis,Unpivot,我有一个导入的平面文件,需要取消导入。除了我希望unpivot在值为null时使行变为偶数之外,所有这些都可以正常工作 我不想诉诸某种黑客手段来添加-1并在后面替换-1 使用数据库的软件希望从平面文件导入的每行始终有3行,即使其值为null 一些图画来解释这个问题 平面锉刀线 ----------------------------------------------------------------- |id of person | code1 | value1 | code2 | valu

我有一个导入的平面文件,需要取消导入。除了我希望unpivot在值为null时使行变为偶数之外,所有这些都可以正常工作

我不想诉诸某种黑客手段来添加-1并在后面替换-1

使用数据库的软件希望从平面文件导入的每行始终有3行,即使其值为null

一些图画来解释这个问题

平面锉刀线

----------------------------------------------------------------- |id of person | code1 | value1 | code2 | value2 | code3 | value3| ----------------------------------------------------------------- |123 | hh1 | hh2 | 2 | hh3 | | | ----------------------------------------------------------------- What I get is ------------------------------ |id of person | code | value | ------------------------------ |123 | hh2 | 2 | ------------------------------ what I want ------------------------------ |id of person | code | value | ------------------------------ |123 |hh1 | null | ------------------------------ |123 |hh2 | 2 | ------------------------------ |123 |hh3 | null | ------------------------------ ----------------------------------------------------------------- |人员id |代码1 |值1 |代码2 |值2 |代码3 |值3| ----------------------------------------------------------------- |123 | hh1 | hh2 | 2 | hh3 || ----------------------------------------------------------------- 我得到的是 ------------------------------ |人员id |代码|值| ------------------------------ |123 | hh2 | 2| ------------------------------ 我想要什么 ------------------------------ |人员id |代码|值| ------------------------------ |123 | hh1 |空| ------------------------------ |123 | hh2 | 2| ------------------------------ |123 | hh3 |空| ------------------------------
我想这就是你想要得到你想要的结果的那张桌子

----------------------------------------------------------------- |id of person | code1 | value1 | code2 | value2 | code3 | value3| ----------------------------------------------------------------- |123 | hh1 | NULL | hh2 | 2 | hh3 | NULL | ----------------------------------------------------------------- 这将为每1行创建3个新行。我假设您的标识符是ID

    public override void Input0_ProcessInputRow(Input0Buffer Row)
    {
        Output0Buffer.AddRow();
        Output0Buffer.ID = Row.ID;
        Output0Buffer.Code = Row.Code1;
        Output0Buffer.Value = Row.Value1;

        Output0Buffer.AddRow();
        Output0Buffer.ID = Row.ID;
        Output0Buffer.Code = Row.Code2;
        Output0Buffer.Value = Row.Value2;

        Output0Buffer.AddRow();
        Output0Buffer.ID = Row.ID;
        Output0Buffer.Code = Row.Code3;
        Output0Buffer.Value = Row.Value3;
    }