用第二排序键排序,是先按一个字段排列记录,两条记录在这个字段上相同时,再按第二个字段排列。任务通常写成“先按社团排序,再按出席次数排序,最多的在前”。
两个排序键怎么运作?
软件先按主排序键排序,然后只在主值相同的记录之间,用第二排序键重新排列。
- 在任务中划出每一条排序指示,并记下各自是升序还是降序。
- 按任务列出的顺序放置排序键:先提到的是主键。
- 分别设定每个键的方向。
- 检查结果:先看主列,再看每一组内部的第二列。
完整例题
使用模块页面里虚构的 Harbour Hill Clubs 表。
任务:先按 Club 从 A 到 Z 排序,再按 Sessions 排序,最多的在前。
**第 1 步,排序键:**主键 Club 升序,第二键 Sessions 降序。
**第 2 步,分组:**按字母顺序是 Chess、Drama、Robotics。
**第 3 步,Chess 内部:**Imran (12)、Dewi (11)、Hui (10)、Aiman (8)。
**第 4 步,Drama 内部:**Bella (12)、Chen (9)、Gopal (6)。
**第 5 步,Robotics 内部:**Farah (12)、Evan (7)、Jia (5)。
完整顺序是 Imran、Dewi、Hui、Aiman、Bella、Chen、Gopal、Farah、Evan、Jia。
要避免的错误
把排序键放反,让 Sessions 变成主键:
Sessions 降序,再 Club 升序。
列表以 Bella (12)、Farah (12)、Imran (12) 开头,接着是 Dewi (11),各社团被混在一起。
记录都在,但社团分组被打乱了。任务要的是先分组。改正方法是把 Club 放第一,Sessions 放第二。一个快速测试:读一遍 Club 这一列,它应该只变化三次。
自测
1. 按 Year 升序排序,再按 Name 从 A 到 Z。写出顺序。
显示答案
Year 9:Dewi、Gopal、Jia。Year 10:Aiman、Chen、Farah、Imran。Year 11:Bella、Evan、Hui。Dewi、Gopal、Jia、Aiman、Chen、Farah、Imran、Bella、Evan、Hui。
2. 按 Fee 降序,再按 Name 从 A 到 Z。排在最前面的三条记录是哪些?
显示答案
Fee 为 60 的成员是 Evan、Farah 和 Jia,按字母顺序。**Evan、Farah、Jia。**接下来是 RM45 的一组:Bella、Chen、Gopal。
3. 一位学生把 ID 存成文本并升序排序。ID 1 到 10 会以什么顺序出现?
显示答案
文本逐个字符排序,所以“10”紧跟在“1”后面。顺序是 **1、10、2、3、4、5、6、7、8、9。**把 ID 存成数字就能解决。
接下来学什么
下一课,在支持的情况下创建计算字段,让报表能显示由现有字段算出的值。只读 SQL 练习实验室能让你看到查询返回的顺序,练习题则综合了所有技能。
排序错误很容易在不知不觉中重复出现,这时一对一线上 ICT 补习会有帮助,因为老师可以在你选择设置时看着你操作。