2015-09-04 49 views
1

我總是掛斷使用SQL數據透視表。
所有我需要做的是改變列數據:SQL Pivot STRING列到STRING行

Name  Thing 
---------- ----------------- 
JOE  Glove 
JOE  Pants 
JOE  Hat 
SUE  Hat 
SUE  Shirt 
MIKE  Shoes 

到任何一個分組,分隔柱:

Name  Things 
--------- ------------------------------------- 
JOE  Glove | Pants | Hat 
SUE  Hat | Shirt 
MIKE  Shoes 

,或者甚至更好,每一個發現項的「左對齊」列:

Name  Thing0 Thing1 Thing2 Thing3 
--------- ------ ------ ------ ------ 
JOE  Glove Pants Hat 
SUE  Hat Shirt 
MIKE  Shoes 

感謝您的任何幫助。

-Allen

+2

您使用的是什麼RDBMS?你有什麼嘗試? – Andrew

+0

SQL Server 2008 –

+2

看看我的問題和答案:http://stackoverflow.com/questions/32376737/merging-rows-to-columns – HoneyBadger

回答

0

對於分隔/集合列:

SELECT Name, listagg(Things, ' | ') WITHIN GROUP (ORDER BY Things) 
FROM your_table 
GROUP BY Name; 

使用PL/SQL中使用使用PIVOT功能動態SQL語句你的第二個「左對齊」的例子可能是最好的解決,如果你想要爲每件事情單獨列。