把列變成行的sql語句

2021-04-12 16:44:12 字數 983 閱讀 1363

現有如下表:

科目   分數    姓名

語文     88      董兆

數學    95       董兆

英語     89      董兆

語文     69      嬋娟

數學    95       嬋娟

英語     89      嬋娟

語文     69      李慧

數學    95       李慧

英語     89      李慧

一條sql語句,查詢結果是

李慧 嬋娟 董兆

語文   69    69   88

數學   95     95  95

英語   89    89   89

sql語句如下:

create table k(科目 varchar(50),分數 int,姓名 varchar(50))

insert k select '語文',88,'董兆'

union all select '數學',95,'董兆'

union all select '英語',89,'董兆'

union all select '語文',69,'嬋娟'

union all select '數學',95,'嬋娟'

union all select '英語',89,'嬋娟'

union all select '語文',69,'李慧'

union all select '數學',95,'李慧'

union all select '英語',89,'李慧'

declare @s varchar(8000)

set @s='select 科目'

select @s=@s+',['+姓名+']=sum(case 姓名 when '''+姓名+''' then 分數 else 0 end)'

from k group by 姓名

exec(@s+'from k group by 科目')

把行資料變成列資料的SQL查詢

group by 子句 指定用來放置輸出行的組,並且如果 select 子句 中包含聚合函式,則計算每組的彙總值。指定 group by 時,選擇列表中任一非聚合表示式內的所有列都應包含在 group by 列表中,或者 group by 表示式必須與選擇列表表示式完全匹配。即select選擇的列要...

如何把mysql的列修改成行顯示資料簡單實現

如何把mysql的列修改成行顯示資料簡單實現 建立測試表 drop table ifexists test 2 create table test 3 year int 11 default null,4 month int 11 default null,5 amount double defau...

SQL語句 把統計結果按照特定的列值轉換成多列

要求 查詢每個老師所帶畢業設計的彙總情況,畢業設計學生分本科 專科,院外 院內,要求得到的結果形式如下 教師名 院內本科 園內專科 院外本科 院外專科 合計 sql語句如下 select teacher.teacher name,ifnull c1.c,0 v1,ifnull c2.c,0 v2,i...