2013-10-04 77 views
1

列,我想分裂有很多值:分离列值成多列

Col1 Col2 

val1 stuff 
val2 stuff 
val3 stuff 
val4 stuff 
.... ..... 

预期输出:

val1 val2 val3 val4 .... 
stuff stuff stuff stuff 

我试过枢轴方法,但因为我的专栏有很多价值观我不知道如何去适应它并使其发挥作用。

+2

动态SQL .... http://stackoverflow.com/questions/11883957/tsql-pivot-long-list-of-columns –

回答

0

请尝试:

DECLARE @cols AS NVARCHAR(MAX), 
    @query AS NVARCHAR(MAX) 

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.Col1) 
      FROM t c 
      FOR XML PATH(''), TYPE 
      ).value('.', 'NVARCHAR(MAX)') 
     ,1,1,'') 


set @query = 'SELECT ' + @cols + ' from 
      (
       select * 
       from t 
      ) x 
      pivot 
      (
       min(Col2) 
       for Col1 in (' + @cols + ') 
      ) p ' 


execute(@query) 

SQL Fiddle Demo