首先查一下student表全表的数据,查询出来的student表有五个列,分别是SNO-编号、SNAME-姓名、SSEX-性别、SBIRTHDAY-出生日期和CLASS-班级。从表中可以看到,这五个列的数据是杂乱无章的,也就是没有经过排序的。

postgresql 降序索引 plsql降序排列_postgresql 降序索引

接着就用SNO来给这个表进行排序,这里的排序代码只写了order by SNO,在PLSQL里有两种排序方式,ascend(升序)和descend(降序),他们在PLSQL是用简写ASC和DESC。而默认的排列方式就是ASC,所以这里只用order by SNO也可以达到升序排序的效果。

postgresql 降序索引 plsql降序排列_倒序_02

用SNO来进行倒序排序结果如下

postgresql 降序索引 plsql降序排列_字段_03

 

接下来要用一种更简单的方法来进行排序,但是这种方法要求对需要排序的表结构比较熟悉,因为要用到该表需要排序的字段所在的列序号。如下图所示,SNO和SBIRTHDAY在该表分别是第一和第四列,那么就可以用1和4来替代order by SNO和order by SBIRTHDAY,写成order by 1 和 order by 4。查询出来的结果也就是SNO和SBIRTHDAY的升序排序,如果要查倒序排序,就在结尾加上DESC即可。

postgresql 降序索引 plsql降序排列_升序_04

 

上面的排序都是针对某个字段的排序,接下来的排序是针对多个字段的排序。这种排序方式可以同时对多个字段进行排序,但是有一点需要注意的是用多个字段排序时会有先后之分。仔细看下面的图片可以发现,多个字段时会先对最前面的字段进行排序,然后在排序出来的结果上再进行后面字段的排序。如下图中order by SSEX,SNO的查询结果,先查性别的排序再查编号的排序,结果就会是性别为男的在上面女的在下面,这时性别为男的再来个编号的排序,女的同样,所以男的编号和女的编号都是从小到大。附个查询班级和性别排序的图辅助理解

postgresql 降序索引 plsql降序排列_字段_05

 

多个字段的排序也是可以用倒序进行排序的。

postgresql 降序索引 plsql降序排列_倒序_06

 

以上就是对查询语句排序的总结。