回覆列表
  • 1 # daazhu2

    例如表cj

    名字 科目 分數

    A 語文 100

    A 數學 90

    A 外語 99

    B 語文 90

    B 數學 80

    B 外語 100

    方法 (一)

    select * from cj

    select 名字, max(case 科目 when "語文" then 分數 else 0 end ) 語文,

    max(case 科目 when "數學" then 分數 else 0 end ) 數學,

    max(case 科目 when "外語" then 分數 else 0 end ) 外語

    from cj

    group by 名字

    方法 (二)

    declare @sql varchar(800)

    set @sql="select 名字"

    select @sql =@sql+", max(case 科目 when """+科目+""" then 分數 else 0 end )["+科目+"]"

    from (select distinct 科目 from cj ) as a

    set @sql=@sql+"from cj group by 名字"

    exec(@sql)

    結果:

    名字 語文 數學 外語

    A 100 90 99

    B 90 80 100

  • 中秋節和大豐收的關聯?
  • 三十萬以內小尺寸(小型和緊湊型)自動四驅越野車有哪些推薦?