Select 排序查询
对一般查询出来的结果,有排序的需求
ordey by 支持多个字段,可以放表达式,别名,函数,一般放到语句的最后面,limit子句除外
- order by 指定排序的列,排序的列既可以是表中的列名,也可以是select语句后指定的别名
- asc升序,desc降序
- order by 子句应位于select 语句的结尾
语法:
SELECT 查询列表 FROM 表名 WHERE 筛选条件 ordey by 排序列表 【asc|desc】
练习1,查询员工信息,要求工资从高到低排序
SELECT * FROM employees ORDEY BY salary DESC
练习2,查询员工信息,要求工资从高到低排序(默认ASC)
SELECT * FROM employees ORDEY BY salary ASC;
练习3,查询部门编号>=90的员工信息,按入职时间的先后进行排序
SELECT * FROM employees WHERE department_id>=90 ORDEY BY hiredate ASC;
练习4,按表达式排序,按年薪的高低,显示员工的信息和年薪
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM employees ORDEY BY salary*12*(1+IFNULL(commission_pct,0)) DESC;
练习5,按表达式排序,按年薪的高低,显示员工的信息和年薪,别名排序
SELECT *,salary*12*(1+IFNULL(commission_pct,0)) 年薪 FROM employees ORDEY BY 年薪 DESC;
练习6,按姓名的长度显示员工的姓名和工资【按函数排序】length显示字符串长度
SELECT LENGTH(last_name) 字节长度,last_name,salary FROM employees ORDEY BY 字节长度 DESC;
练习7,查询员工新,要求按工资排序,再按员工编号排序【按多个字段排序】
SELECT * FROM employees ORDEY BY salary ASC,employeec_id DESC;
排序查询练习
练习1,查询员工的姓名和部门号和年薪,按年薪降序,按名字升序
SELECT last_name,salary*12*(1+IFNULL(commission_pct,0)) 年薪FROM employees ORDEY BY 年薪 DESC,last_name ASC;
练习2,选择工资不在8000-17000的员工的姓名和工资,按工资降序
SELECT * FROM employees WHERE salary NOT BETWEEN 8000 AND 15000 BY salary DESC;
练习3,查询邮箱中包含e的员工信息,并先按邮箱的字节数降序,在按部门号升序
SELECT * FROM employees WHERE email like '%e%' ORDEY BY LENGTH(email) DESC,department_id ASC;
继续阅读

我的微信
这是我的微信扫一扫
评论