这是我要使用SSIS和条件拆分转换来解决的难题。我有一个.csv文件,其中每个唯一用户的一行包含属性数据,另一列中的每个属性包含值。即:
Attribute, Attribute Type
ID, 0000000001
Birthdate, 09/02/1976
Role, Manager
或类似的东西。我需要将属性拆分为包含“属性类型数据”的列。因此理想的结果将是:
ID, Birthdate, Role,
0000000001, 09/02/1976, Manager,
然后我需要将它们插入带有新列的一个SQL表中。
我能够通过对一列进行条件拆分转换(例如使用表达式Attribute ==“ ID”,然后将.csv源代码中的整个Attribute列映射到SQL中的ID列)来出色地完成此操作目标表),但问题在于其他列。我似乎无法实现Union All转换来完成我想要的工作。
有什么建议吗?
答案 0 :(得分:1)
None
string ID = "";
string BirthDate = "";
string Role = "";
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
if(!Row.Attribute_IsNull && !String.IsNullOrWhiteSpace(Row.Attribute))
{
switch (Row.Attribute)
{
case "ID":
ID = Row.AttributeType;
break;
case "BirthDate":
BirthDate = Row.AttributeType;
break;
case "Role":
Role = Row.AttributeType;
Output0Buffer.AddRow();
Output0Buffer.ID = ID;
Output0Buffer.Role = Role;
Output0Buffer.BirthDate = BirthDate;
break;
default:
break;
}
}
}