表名:Info
 name   questionnum  question 
 8001      1           A
 8001      2           B
 8001      3           C
 8001      4           B
 8001      5           A
 8001      6           D
 8001      7           C
 8001      8           B
 最终查询结果:
 name    1   2   3    4    5    6    7   8
 8001    A   B   C    B    A    D    C   B

解决方案 »

  1.   

    http://topic.csdn.net/u/20091013/15/9f058df7-4d29-47bf-a338-b63fcab2abc0.html?11413
    http://topic.csdn.net/u/20091013/15/9f058df7-4d29-47bf-a338-b63fcab2abc0.html?11413
      

  2.   

    行转列http://topic.csdn.net/u/20100412/22/fec647ea-73d0-480b-92e9-8af61ef3c978.html
      

  3.   

    参考 http://www.itpub.net/thread-475203-1-1.html#
      

  4.   

     name 和 questionnum 值是动态的
      

  5.   

    http://topic.csdn.net/u/20090515/12/ee9a595e-b0bd-4ee2-899d-d8024d0a481b.html
      

  6.   

    <a href='http://topic.csdn.net/u/20091013/15/9f058df7-4d29-47bf-a338-b63fcab2abc0.html?11413'>顶</a>
      

  7.   

    <a href="'http://topic.csdn.net/u/20091013/15/9f058df7-4d29-47bf-a338-b63fcab2abc0.html?11413" target="_blank" >顶</a>
      

  8.   

    select [name],[1],[2],[3],[4],[5],[6],[7],[8] from #temp 
    pivot
    (
    max(question)
    for questionnum in
    ([1],[2],[3],[4],[5],[6],[7],[8])
    ) pvt
      

  9.   

    http://topic.csdn.net/u/20080614/17/22e73f33-f071-46dc-b9bf-321204b1656f.html
      

  10.   

     name,questionnum 动态的,你写死了
      

  11.   

    declare @sql varchar(8000)
    set @sql = 'select name as 姓名, sum( case chengji when ''A'' then 1 when ''B'' then 2 when ''C'' then 3 when ''D'' then 4 else 0 end)as 得分'
    select @sql = @sql + ' , max(case kemu when ''' + cast(kemu as varchar)+ ''' then chengji else null end) [' + cast(kemu as varchar) + ']'
    from (select distinct kemu from Test) as a
    set @sql = @sql + ' from Test group by name'
    exec(@sql)
      

  12.   

    declare @sql varchar(8000)
    set @sql = 'select name as 姓名
    select @sql = @sql + ' , max(case questionnum when ''' + cast(questionnum as varchar)+ ''' then question  else null end) [' + cast(questionnum as varchar) + ']'
    from (select distinct questionnum from info ) as a
    set @sql = @sql + ' from info group by name'
    exec(@sql)