2 回答

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超3個(gè)贊
select 課程,
sum(case when 姓名='李四' then 成績(jī) end)as '李四',
sum(case when 姓名='張三' then 成績(jī) end)as '張三'
from table_2
group by 課程
--意思是:
查詢結(jié)果按照“課程”、“李四的成績(jī)”、“張三的成績(jī)”顯示出來(lái),
其中“李四的成績(jī)”計(jì)算方法是:
當(dāng)姓名=李四,那么就計(jì)算將該行的成績(jī)按照課程進(jìn)行分類加總
“張三的成績(jī)”計(jì)算方法是:
當(dāng)姓名=張三,那么就計(jì)算將該行的成績(jī)按照課程進(jìn)行分類加總
select 姓名,
sum(case when 課程='語(yǔ)文' then 成績(jī) end)as '語(yǔ)文',
sum(case when 課程='數(shù)學(xué)' then 成績(jī) end)as '數(shù)學(xué)',
sum(case when 課程='英語(yǔ)' then 成績(jī) end)as '英語(yǔ)'
from table_2
group by 姓名
--類似的意思是:
查詢結(jié)果按照“姓名”、“語(yǔ)文”、“數(shù)學(xué)”、“英語(yǔ)”按照姓名進(jìn)行加總各科成績(jī)顯示出來(lái),
其中“語(yǔ)文”成績(jī)計(jì)算方法是:
當(dāng)科目=語(yǔ)文,那么就計(jì)算將該行的成績(jī)按照姓名進(jìn)行分類加總
“數(shù)學(xué)”成績(jī)計(jì)算方法是:
當(dāng)科目=數(shù)學(xué),那么就計(jì)算將該行的成績(jī)按照姓名進(jìn)行分類加總
“英語(yǔ)”成績(jī)計(jì)算方法是:
當(dāng)科目=英語(yǔ),那么就計(jì)算將該行的成績(jī)按照姓名進(jìn)行分類加總
case when 條件 then 表達(dá)式1 else 表達(dá)式2 end
表示:當(dāng)條件成立,則返回表達(dá)式1,否則返回表達(dá)式2.
因此:sum(case when 姓名='李四' then 成績(jī) end)as '李四', 表示如果姓名為李四,則加總計(jì)算成績(jī),列名為‘李四’
類似的樓主可以自己理解了。

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊
case的意思.就相等的程序中的if 也就是如果
case when 課程='語(yǔ)文' then 成績(jī) end
翻譯就是..如果課程列的記錄等于語(yǔ)文,那么就取此行成績(jī)列的值.
本來(lái)是取課程的值..
- 2 回答
- 0 關(guān)注
- 101 瀏覽
添加回答
舉報(bào)