Welcome To Jeremy's Blog --------------------------            JeremyYu

3.DQL语言之排序查询


1.排序查询

1 # 1.语法
2   select查询列表from表where筛选条件 order by排序列表[asc|desc]

3 # 2.特点说明: 4   1).asc代表按排序字段升序查询, desc代表按排序字段降序查询,如果不写默认升序 5   2).order by子句支持单个字段,多个字段,表达式,函数,别名进行排序 6   3).order by子句一般是放在查询语句的最后面的,但limit子句除外

7 # 3.执行顺序: 8 from-->where-->select--> order by

返回顶部


2.查询小示例

 1 # 1.查询员工信息, 要求工资从高到低排序
 2   select*from employees order by salary desc;
 
3
# 2.查询部门编号>=90的员工信息, 按入职时间降序排列. 4   select*from employees where department_id >=90 order by hiredate desc
5
# 3.按年薪的高低显示员工信息和年薪(按表达式排序, order by 支持别名排序) 6   select * , salary*12*(1+ifnull(commission_pct,0))as 年薪 7   from employees 8   order by 年薪 desc;
9
# 4.按姓名的长度从长到短显示员工的名字, 名字长处和工资(按函数与排序) 10   select last_name, length(last_name),salary 11   from employees 12   order by length(last_name) desc;
13 # 5.查询员工信息, 要求先按工资升序, 在按员工编号降序(多字段排序) 14   select * 15   from employees 16   order by salary asc, employee_id desc;
17 # 注:多字段排序时, 会按第一个排序的字段先进行排序, 如果第一个字段有两条或两个以上记录值相同, 则这几条记录之间按第二个排序的字段进行排序, 以此类推.

返回顶部


3.小练习—SQL语句编写

 1 # 1.查询员工的姓名和部门号和年薪, 按年薪降序排序, 按姓名升序排序
 2   select last_name, department_id, salary*12*(1+ifnull(commission_pct,0))as年薪
 3   from employees
 4   order by年薪 desc, last_name asc;
 
5
# 2.选择工资不在8000到17000之间的员工的姓名和工资, 按工资降序 6   select last_name, salary 7   from employees 8   where salary not between 8000and1700 9   order by salary desc;
10 # 3. 查询邮箱中包含e的员工信息, 并先按邮箱的字节数降序, 再按部门号升序 11   select* 12   from employees 13   where email like '%e%' 14   order by length(email) desc, department_id asc

返回顶部

posted on 2018-03-10 16:32  Jeremy_Yu  阅读(86)  评论(0)    收藏  举报

导航