想了解清楚每个词的意思,和这句语句的步骤,如先把什么抽出来,再怎么怎么,···那样···

我明白下列两语句之不同,但不能理解.初学SQL2005 请教!

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 姓名

table_2是表名 姓名,课程,成绩是列名。)其他是对应列的数据

希望可以帮我找到更多的知识。

芜湖不芜
浏览 60回答 2
2回答

繁星点点滴滴

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 '李四', 表示如果姓名为李四,则加总计算成绩,列名为‘李四’类似的楼主可以自己理解了。 

catspeake

case的意思.就相等的程序中的if 也就是如果case when 课程='语文' then 成绩 end翻译就是..如果课程列的记录等于语文,那么就取此行成绩列的值.本来是取课程的值..
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server