08-排序查询

排序查询

​ 在检索数据时,如果把数据从数据库中直接读取出来,这时查询结果将按照默认顺序排列,但往往这种默认排列顺序并不是用户所需要看到的。尤其是返回数据量较大时,用户查看自己想要的信息非常不方便,因此需要对检索的结果集进行排序。

语法

select column1,column2,... from table_name where condition order by column1 asc/desc;
关键字:order by正序/倒序(升序/降序):asc(默认,可省略)/desc 

ORDER BY 子句可以根据查询结果中的一个列或多个列对查询结果进行排序,并且第一个排序项是主要的排序依据,其次那些是次要的排序依据。

分类:    
1.按排序规则        
  1)升序       排序项为升序        
  2)降序	   排序项为降序        
  3)同升同降    前排序项为升序/降序,后排序项也为升序/降序        
  4)升降混合    前排序项为升序/降序,后排序项也为降序/升序    
2.按排序内容        
  1)原字段        
  2)表达式(函数、计算)        
  3)代号(字段别名)

示例

select * from emp order by sal asc; --查询emp表中根据工资升序排序 (升序,asc 可省略)select * from emp order by sal desc; --根据工资列降序排序        (降序)

select * from emp order by deptno,sal;--先根据部门升序排序,再根据工资升序排序           (同升)

select * from emp order by deptno desc,sal desc;--先根据部门升序降序,再根据工资降序排序 (同降)

select * from emp order by deptno desc,sal;--先根据部门降序排序,再根据工资升序排序   (升降混合)

select * from emp order by sal + 500;--查询emp表,将工资加500后升序排序              (表达式)

select * from emp order by lower(ename) desc;--查询emp表,将姓名改为小写后降序排序      (函数)

select ename,sal s from emp order by s;--查询emp表中的员工姓名,工资,并按照工资升序排序  (代号)

image-20210804232209448

image-20210804232244113

image-20210804232323041

NULL值的默认排序和强制排序

语法

1)NULL值的默认排序为极大值,即升序排序时空值排在最后,降序排序时空值排在最前2)
   强制空值排在最前:NULLS FIRST3)
   强制空值排在最后:NULLS LAST

示例

select * from emp order by comm;  --升序排序时空值排在最后

image-20210804231429680

select * from emp order by comm null first;  --强制null排在前面

image-20210804231645959

posted @ 2021-08-05 20:26  C-Asher  阅读(197)  评论(0)    收藏  举报