排序查询
在实际应用中,经常都需要按照某个字段都某种排序都结果,实现语法:
sql
select 查询列表 from 表 where 条件 order by 排序字段列表 asc | desc;
案例:查询所有员工信息,要求工资从大到小排列
sql
select * from employees order by salary desc; // desc:降序,asc:升序
反过来从小到大排列
sql
select * from employees order by salary asc; // asc:是可以省略
案例加上条件oreder by语句是放在条件语句后面的,
查询部门编号大于等于90的员工信息,按照入职时间的先后排序
sql
select * from employees where department_id>=90 order by hiredate asc;
案例实现按表达式排序,按年薪的高低显示员工信息
sql
select *,salary*12*(1+isnull(commission_pct,0)) as 年薪 from employees oreder by salary*12*(1+isnull(commission_pct,0)) desc;
-----oreder by salary*12*(1+isnull(commission_pct,0)) 太长!可以用别名替代:
-----oreder by 年薪 也是可以的!
案例使用函数来排序,按姓名的长度显示员工信息
sql
select *,length(last_name) as 姓名的长度 from employees order by length(last_name) desc;
案例实现多字段排序,查询员工信息,首先用工资高低排序,工资一样的在按员工id大到小排序
sql
select * from employees order by salary desc , employee_id desc;