精通MS-ACCESS SQL之基础篇(06)
时 间:2017-11-14 16:21:58
作 者:Big Young ID:252 城市:襄阳
摘 要: ORDER BY 子句的用法,对查询的结果进行排序。
正 文:
第六节 对查询出来的记录进行排序
在执行查询时,其结果在默认情况下是按记录录入时的顺序排列的,比如我们前面使用过的 “学生信息” 数据表,其记录的输入的原始顺序如图6-1所示:
图6-1:表中数据录入时的顺序
我们再运行查询全部记录的SQL命令:“Select * FROM 学生信息;”,会看到如图6-2所示的效果,与前面的图6-1排列顺序是一样的,没有区别。
图6-2:查询记录显示的原始顺序
然而,我们有时需要按一定规则对数据进行排序。这时就需要用到ORDER BY子句了,可以通过实验室来实现这个功能。
一、查询结果排序命令的基本语法
排序查询结果的语法如下:
Select <* | column1 [AS] [alias1], column2 [AS] [alias2], ...> FROM table
[Where condition(s)]
[ORDER BY column1 [ASC | DESC ][, column2 [ASC | DESC ]][, ...]]];
在这里“ORDER BY column1, column2, ... [ASC|DESC]”子句的功能是进行排序作用的,句子中的“column1, column2, ...”是排序要依据的字段,“ASC”是英文单词“ascent”的字头,表示“升序”方式就是由小到大的方式排序,这是默认的排序方式,故“ASC”可以省略,“DESC”是单词“descent”的开头部分,表示“下降”的意思,用来指定降序排列。
二、按单个字段排序
查询时可以根据现实中不同的要求,灵活地对查询结果进行了排序,如在查询“学生信息”表中的记录时,我们想按“姓名”进行排序,就可以创建如下的SQL查询:
Select * FROM 学生信息 ORDER BY 姓名;
运行后的结果如图6-3所示。
图6-3:按姓名排序的查询结果(升序)
查看后我们发现默认是按“姓名”的中文拼音字母顺序的升序排序的,与使用“ASC”关键字效果是一样的,不信大家可以自己测试一下SQL语句:“Select * FROM 学生信息 ORDER BY 姓名 ASC;”,看看最终结果。
三、按多个字段排序
有时候,只按一个字段排序并不能满足我们的需要,这时可考虑使用多个字段来排序。在多字段排序中,需要明白的是,排序是以前面的字段为主,当前面的字段值相同时才按第二个字段排序,第二个再相同时才按第三个进行排序,依次类推。
下面我们来对查询到的“学生信息”记录先按“性别”,再按“出生日期”,然后再按“姓名”进行排序。
创建一个新的SQL查询查询,输入如下SQL语句:
Select * FROM 学生信息 ORDER BY 性别, 出生日期 DESC, 姓名;
运行后结果如图6-4所示:
图6-4:多字段查询效果
这里同时也演示了使用“DESC”关键字的使用,进行了降序排列
四、按相对位置上的字段进行排序
我们也可以在排序时不具体指定字段的名称,只用相对位置上的字段进行排序,这有时可能更通用,比如说我们建立如下的SQL语句:“Select * FROM 学生信息 Where 姓名 <> '齐丹丹' orDER BY 1 DESC;”对“学生信息”进行查询,结果会如下图6-5所示:
图6-5:按相对位置字段进行排序
再修改SQL语句为:“Select * FROM 学生信息 Where 姓名 <> '齐丹丹' orDER BY 2 DESC;”,运行后其结果如图6-6所示:
图6-6:按相对位置2上的字段排序
图6-5与图6-6相对照我们就会发现,排序条件中的“1”或“2”代表的是表里记录中的字段位置,即“1”是第一个字段,“2”是第二个字段,“3”是第三个字段,依次类推第四、第五……利用这一特性或许我们能够写出更为通用的查询,这有待大家去发现了。
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)