一道褒贬不一的SQL考试题
日期:2007年7月31日 作者: 查看:[大字体 中字体 小字体]-
,那就是 CASE:
SELECT 学生ID, MIN(学生姓名)
,SUM(CASE 课程ID WHEN 'K1' THEN 成绩 ELSE 0 END) AS 数学
,SUM(CASE 课程ID WHEN 'K2' THEN 成绩 ELSE 0 END) AS 语文
,SUM(CASE 课程ID WHEN 'K3' THEN 成绩 ELSE 0 END) AS 英语
,SUM(CASE 课程ID WHEN 'K4' THEN 成绩 ELSE 0 END) AS 政治
,COUNT(*) AS 有效课程数, AVG(T.成绩) AS 平均成绩
FROM 成绩表 AS T
GROUP BY 学生ID
ORDER BY 平均成绩 DESC虽然可能初看答案感觉有点怪,其实很好理解,可读性并不低,效率也很高。但它不能
像前一个答案那样,在成绩中区分出某一门课这个学生究竟是缺考 (NULL),还是真得
零分。这个解法充分利用了 CASE 语句进行数据分类的作用: CASE 将成绩按课程分
成四类,SUM 用来消去多余的 0。SELECT [T].[学生ID],MAX([T].[学生姓名]) AS 学生姓名
,MAX([T1].[成绩]) AS 数学,MAX([T2].[成绩]) AS 语文,MAX([T3].[成绩]) AS 英语,MAX([T4].[成绩]) AS 政治, COUNT([T].[课程ID]) AS 有效课程数
,(ISNULL(MAX([T1].[成绩]),0) + ISNULL(MAX([T2].[成绩]),0) + ISNULL(MAX([T3].[成绩]),0) + ISNULL(MAX([T4].[成绩]),0)) / COUNT([T].[课程ID]) AS 有效平均分
FROM 成绩表 T
LEFT JOIN 成绩表 AS [T1]
ON [T].[学生ID] = [T1].[学生ID] AND [T1].[课程ID] = 'K1'
LEFT JOIN 成绩表 AS [T2]
ON [T].[学生ID] = [T2].[学生ID] AND [T2].[课程ID] = 'K2' - 上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] 下一页
-
- 一道褒贬不一的SQL考试题 相关文章:
- ·2007年结婚吉日黄道吉日通用表
- ·知道对方的ip地址,如何查具体物理地址?
- ·PS通道抠图:给秀发飞扬的MM照片换背景
- ·[合成]问道丹药合成大全2
- ·一道褒贬不一的SQL考试题
- ·笔记本内存双通道(DDR2)
- ·[任务]《问道》20~50级剧情任务
- ·查看内存是否处于双通道模式
- ·PHOTOSHOP通道基础教程
- ·用一张图透彻讲解Photoshop通道的作用
- 一道褒贬不一的SQL考试题 相关软件
- ·七龙珠Z天下第一武道大会3
- ·赛道狂飙:国家
- ·朗道(电脑词典,翻译系统) V5.0
- ·和讯股道实时行情分析系统 普及版
- ·神奇传说2之时空道标
- ·老子(道德经)
- ·华容道全集
- ·JPT日本语合格的道路 V8.0
- ·《逍遥OL(问道)》精美官方壁纸
- ·效率源昆腾LCT10物理坏道修复程式 V2003
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
上一篇:XML数据库发展迅猛
精品推荐
热点TOP10
- ·精妙SQL语句收集
- ·SQLPLUS命令的使用大全
- ·收集的host文件网站黑名单
- ·数据库连接字符串大全
- ·SQL Server 练习题
- ·SQL中CASE的用法
- ·认识VF--Visual FoxPro 漫谈
- ·什么是SQL注入法攻击
- ·一道褒贬不一的SQL考试题
- ·学习SQL语句之SQL语句大全
- ·SQL数据库高级教程:SQL UNION 和 UNION ALL
- ·SQL Server不存在或访问被拒绝 问题的解决
- ·SQLSERVER中,数据库同步的实现
- ·MS-SQL开发常用汇总和t-sql技巧集锦
- ·MySQL管理工具SQLyog最新6.1下载
- ·“SQL Server不存在或访问被拒绝”问题的解决
- ·MySQL数据库学习手册之MySQL客户工具和API
- ·学习SQL SERVER的存储过程-之一认识存储过程语法
- ·如何删除数据库中的冗余数据(翻译)
- ·数据库物理设计经验谈
特别推荐
- ·什么是SQL注入法攻击
- ·用SQL语句删除重复记录的四种方法
- ·数据库查询优化
- ·MySQL常见错误问答!
- ·MySQL从后门进企业市场
- ·精妙SQL语句收集
- ·如何在WinNT/2K/XP下启动纯DOS
- ·自己动手做一个SQL解释器
- ·SQL SERVER实用技巧
- ·动态创建MSSQL数据库表存储过程
- ·数据库的分页问题
- ·DM分区软件使用详解
- ·对ADSL接入方式铜缆可用线对率分析
- ·收集的host文件网站黑名单
- ·修复SQL Server 2000数据库之实战经验
- ·实用的存储过程之一
- ·IIS5 ISAPI Extension Back Door
- ·MySQL中文参考手册7(MySQL存取权限系统)grant设置密码password
- ·Sql server 如何得到汉字的声母
- ·数据库物理设计经验谈
