MYSQL 第三课 排序查询

语法    select  查询列表3

           from  表1

           where  筛选条件2

           order by 排序列表 asc  desc   4

asc代表的是升序,desc代表的是降序,如果不写,默认是升序

order by 子句中可以支持多个字段 单个字段 表达式 函数 别名

order by 一般放在查询语句的最后面 limit 子句除外

#案例  查询员工信息,要求工资从高到低排序       

SELECT 
 *
FROM
employees
ORDER BY salary DESC;# 从高到低
SELECT 
 *
FROM
employees
ORDER BY salary;

案例2 查询部门编号>=90的员工信息,按入职时间的先后进行排序

SELECT *
FROM employees
WHERE `department_id`>=90
ORDER BY hiredate ASC;

 

 案例3 按年薪的高低显示员工的信息和年薪 按表达式排序

SELECT 
*,`salary`*12*(1+IFNULL(`commission_pct`,0)) 年薪
FROM
employees
ORDER BY `salary`*12*(1+IFNULL(`commission_pct`,0)) DESC;

 

案例4 按年薪的高低显示员工信息和年薪  按别名排序 

SELECT 
*,`salary`*12*(1+IFNULL(`commission_pct`,0)) 年薪
FROM
employees
ORDER BY 年薪 DESC;

 

案例5 按姓名的长度显示员工的姓名和工资

SELECT 
`last_name`,`salary`
FROM
employees
ORDER BY LENGTH(`last_name`) DESC;

 

案例6  查询员工信息 要求先按工资升序 再按员工编号降序  (按多个字段排序)

SELECT 
*
FROM
employees
ORDER BY `salary` aSC,`employee_id`desc;

 

案例7 选择工资不在8000到17000的员工的姓名和工资 按工资降序

SELECT 
`last_name`,`salary`
FROM
employees
where `salary` not between 8000 and 17000
ORDER BY `salary` DESC;

 

案例8 查询邮箱中包含e的员工信息 并先按邮箱的字节数降序 再按部门号升序

SELECT 
*
FROM
employees
WHERE email LIKE '%e%'
ORDER BY LENGTH(`email`) DESC,`department_id`ASC;

 

posted @ 2020-09-16 13:24  袁小娜  阅读(156)  评论(0)    收藏  举报