亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

想了解清楚每個詞的意思,和這句語句的步驟,如先把什么抽出來,再怎么怎么,···那樣···

想了解清楚每個詞的意思,和這句語句的步驟,如先把什么抽出來,再怎么怎么,···那樣···

蕪湖不蕪 2022-12-14 17:13:19
我明白下列兩語句之不同,但不能理解.初學SQL2005 請教!select 課程,sum(case when 姓名='李四' then 成績 end)as '李四',sum(case when 姓名='張三' then 成績 end)as '張三'from table_2group by 課程select 姓名,sum(case when 課程='語文' then 成績 end)as '語文',sum(case when 課程='數學' then 成績 end)as '數學',sum(case when 課程='英語' then 成績 end)as '英語'from table_2group by 姓名table_2是表名 姓名,課程,成績是列名。)其他是對應列的數據希望可以幫我找到更多的知識。
查看完整描述

2 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

select 課程, 
sum(case when 姓名='李四' then 成績 end)as '李四', 
sum(case when 姓名='張三' then 成績 end)as '張三' 
from table_2 
group by 課程 

--意思是:
查詢結果按照“課程”、“李四的成績”、“張三的成績”顯示出來,
其中“李四的成績”計算方法是:
當姓名=李四,那么就計算將該行的成績按照課程進行分類加總
“張三的成績”計算方法是:
當姓名=張三,那么就計算將該行的成績按照課程進行分類加總

select 姓名, 
sum(case when 課程='語文' then 成績 end)as '語文', 
sum(case when 課程='數學' then 成績 end)as '數學', 
sum(case when 課程='英語' then 成績 end)as '英語' 
from table_2 
group by 姓名 

--類似的意思是:
查詢結果按照“姓名”、“語文”、“數學”、“英語”按照姓名進行加總各科成績顯示出來,
其中“語文”成績計算方法是:
當科目=語文,那么就計算將該行的成績按照姓名進行分類加總
“數學”成績計算方法是:
當科目=數學,那么就計算將該行的成績按照姓名進行分類加總
“英語”成績計算方法是:
當科目=英語,那么就計算將該行的成績按照姓名進行分類加總

case when 條件 then 表達式1 else 表達式2 end
表示:當條件成立,則返回表達式1,否則返回表達式2.
因此:sum(case when 姓名='李四' then 成績 end)as '李四', 表示如果姓名為李四,則加總計算成績,列名為‘李四’

類似的樓主可以自己理解了。

 


查看完整回答
反對 回復 2022-12-18
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

case的意思.就相等的程序中的if 也就是如果

case when 課程='語文' then 成績 end

翻譯就是..如果課程列的記錄等于語文,那么就取此行成績列的值.

本來是取課程的值..

查看完整回答
反對 回復 2022-12-18
  • 2 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號