2015-09-04 94 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语句你的第二个“左对齐”的例子可能是最好的解决,如果你想要为每件事情单独列。

相关问题