这似乎有点尴尬,为什么不在查询中这样做呢?
select
CustID,
max(case when FieldID = 3 then VARCHAR_VAL else null end) as 'FirstName',
max(case when FieldID = 5 then INT_VAL else null end) as 'AccountNumber',
max(case when FieldID = 1 then INT_VAL else null end) as 'Age',
max(case when FieldID = 4 then DATE_VAL else null end) as 'JoinDate',
max(case when FieldID = 2 then DEC_VAL else null end) as 'Balance'
from
dbo.StagingTable
group by
CustID
如果源系统是MSSQL,那么可以使用SSIS中的查询,甚至可以在源数据库中创建视图(如果允许的话)。如果没有,则直接将数据复制到MSSQL中的一个staging表中,并从那里查询它。