2012-01-31 79 views
2

我有一个表:我可以摆脱这张桌子吗?

ID Name 
    -- ----- 
    1 aaa 
    2 bbb 
    2 ccc 
    2 ddd 
    3 eee 
    3 fff 
    4 ggg 
    5 hhh 

我需要使生成的表看起来像这样转动此表:

ID Name1 Name2 Name3 Name4 Name5 Name6 
    -- ----- ----- ----- ----- ----- ----- 
    1 aaa NULL NULL NULL NULL NULL 
    2 bbb ccc ddd NULL NULL NULL 
    3 eee fff NULL NULL NULL NULL 
    4 ggg NULL NULL NULL NULL NULL 
    5 hhh NULL NULL NULL NULL NULL 

我都用这个对XML源在SSIS生成的表格。 请帮忙!

回答

1

假设你的表称为测试:

select ID, [1] Name1, [2] Name2, [3] Name3, [4] Name4, [5] Name5, [6] Name6 
from 
(
    select id, name, ROW_NUMBER() over (partition by id order by id) as RowNum from Test 
) AS A 
PIVOT 
(
    min(name) 
    for RowNum in ([1], [2], [3], [4], [5], [6]) 
) as PivotTable; 
+0

我试图替换该'[1],[2] ...'和'1,名称...''后,针对ROWNUM在... '但它没有奏效,抛出数据类型转换错误,为什么它不起作用? – yogi 2016-06-28 09:15:47

+0

不确定,这是一个非常古老的答案,所以我不记得它的任何内容,并且很久没有在SQL中做过这种事情。它不适用于答案中的文字[1],[2] ...吗? – 2016-06-29 08:07:27

0

如果您使用的是SSIS,则可以在数据流任务中使用pivot和unpivot数据流元素。

相关问题