1

如何将列值拆分为原始值,例如:

Col1            col2
1               james
1               gold
1               james@gmail.com
2               john
2               def
2               def@gmail.com

col1 值不断变为数千。

结果:

col1            col2      col3      col4
1               james     gold      james@gmail.com 
2               john      def       ef@gmail.com
4

1 回答 1

3

试试这个:

这将不能保证列之间值的顺序,因为该表没有显示列顺序的列。如果您有这样的列,则可以使用该列更改 select 0

with cte as(
select *,ROW_NUMBER() 
         over(partition by Col1 order by (select 0))as rn from Table1)  
select * from cte
pivot(
   Max(COL2) FOR rn IN ([1],[2],[3] )  
   )P 


SQL小提琴演示

于 2012-10-23T09:41:31.750 回答