2012-01-31 65 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數據流元素。

相關問題