49,2,60,96,30
通過(guò)case表達(dá)式
select id,name,sum(case when course='語(yǔ)文' then score end) "語(yǔ)文",
sum(case when course='數(shù)學(xué)' then score end) "數(shù)學(xué)",
sum(case when course='英語(yǔ)' then score end) "英語(yǔ)",
sum(case when course='歷史' then score end) "歷史",
sum(case when course='化學(xué)' then score end) "化學(xué)"
from HANG2LIE
group by id,name;
union有去重功能:
結(jié)構(gòu)如下:
ID NAME Chinese Math English History Chemistry
--- ------- ---------- ---------- ---------- ---------- ----------
2 name_2 85 4 98 9 12
1 name_1 33 63 71 68 94
3 name_3 49 96 30 60 2
我們要實(shí)現(xiàn)如下的查詢(xún)效果:列轉(zhuǎn)行
ID NAME COUR SCORE
--- -------- ---- -----
2 name_2 語(yǔ)文 85
1 name_1 語(yǔ)文 33
3 name_3 語(yǔ)文 49
2 name_2 數(shù)學(xué) 4
1 name_1 數(shù)學(xué) 63
3 name_3 數(shù)學(xué) 96
2 name_2 英語(yǔ) 98
1 name_1 英語(yǔ) 71
3 name_3 英語(yǔ) 30
2 name_2 歷史 9
1 name_1 歷史 68
3 name_3 歷史 60
2 name_2 化學(xué) 12
1 name_1 化學(xué) 94
3 name_3 化學(xué) 2
1、集合查詢(xún)
實(shí)現(xiàn)的SQL語(yǔ)句:
select id,name,'語(yǔ)文' course,chinese score from lie2hang
union
select id,name,'數(shù)學(xué)' course,math score from lie2hang
union
select id,name,'英語(yǔ)' course,english score from lie2hang
union
select id,name,'歷史' course,history score from lie2hang
union
select id,name,'化學(xué)' course,chemistry score from lie2hang;