★★★★★还是关于CASE的基本运用,可怎么也想不同????
surfl 2003-10-21 10:32:42 ★★★★★还是关于CASE的基本运用,可怎么也想不同????
最近在看《一道褒贬不一的SQL考试题》的时候,对其中的CASE好像懂又好像不懂,其实就是不懂!
其中
3、列印所有学生的四门成绩(数学、语文、英语、政治)课程成绩
SELECT 学生ID,MAX(学生姓名) AS 学生姓名
,SUM(CASE 课程ID WHEN 'K1' THEN 成绩 ELSE 0 END ) AS 数学
。。。。。。。。
4、按各科不平均成绩从低到高和及格率的百分数从高到低顺序
SELECT 课程ID,MAX(课程名称) AS 课程名称,AVG(平均成绩) AS 平均成绩
,100* SUM(CASE WHEN 成绩 》=60 TEHN 1 ELSE 0 END )/COUNT(*) AS 及格率
1、上面为什么 THEN后一个是列名,一个是 1呢??
2、怎么条件又时在CASE后,又时在WHEN后呢??
3、由上推广,CASE的基本用法有几种,有没有这方面的代表的例子?
谢谢!!
---------------------------
成绩表
1 S3 王五 K4 政治 53 T4 赵老师
2 S1 张三 K1 数学 61 T1 张老师
3 S2 李四 K3 英语 88 T3 李老师
4 S1 张三 K4 政治 77 T4 赵老师
5 S2 李四 K4 政治 67 T5 周老师