求助 简单的行转列问题
有表1      
 列1         列2            列3         列4       
 1标            a               12               10 
 1标            b               8                  3 
 1标            c               2                  5 
 1标            d               6                  8 
 2标            a               6               10 
 2标            b               3               10 
 2标            c               8               10 
 2标            d               11               10 
 2标            f               2               10 
 3标            a               4                  10 
 3标            d               12               10 
 3标            e               12               10 
 3标            f               12               10 
 4标            a               12               10 
 4标            b               12               10 
 4标            d               12               10 
 4标            f               12               10   
 如果能得到以下表(没有的就以null填充),其实也就是常说的行转列:   
 表2   
 列1         1标         2标         3标         4标 
    a               12            6               4            12 
    b               8               6            null      12 
    c               2               8            null      null 
    d               6               11         12            12 
    e            null      null      12            null 
    f            null         2            12            12 
------解决方案--------------------
--如果列1的標的種類不是固定的 
 Declare @S Varchar(8000) 
 Select @S =  ' Select 列2 As 列1 ' 
 Select @S = @S +  ', Max(Case 列1 When  ' ' ' + 列1 +  ' ' ' Then 列3 Else Null End) As [ ' + 列1 +  '] ' 
 From 表1 Group By 列1 
 Select @S = @S +  ' From 表1 Group By 列2 ' 
 EXEC(@S)
------解决方案--------------------declare @sql varchar(8000) 
 set @sql =  'select 列2, '