DQL 3_排序查询

3_排序查询

/*
语法:
select 查询列表 3
from 表 1
【where 筛选条件】 2
order by 排序列表 【asc|desc】 4 数字为执行顺序
特点:
asc 代表升序 desc 代表降序 什么都不写 默认升序
order by 子句中可以支持单个字段,多个字段,表达式,函数,别名
order by子句 一般 放在 查询语句 的 最后面,但limit子句除外
*/

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

SELECT * FROM employees order by salary DESC;

案例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; # order by 后面支持跟 别名

案例5:按姓名的长度 显示 员工的姓名和工资【按函数排序length()】

SELECT length('JOHN');
SELECT length(LAST_NAME) 姓名长度,LAST_NAME,salary FROM employees order by LENGTH(last_NAME) DESC;

案例6:查询员工信息,先按照工资升序排序,再按照员工编号降序排序【按多个字段排序】 意思 若工资一样,则按员工编号降序排序

SELECT * FROM EMPLOYEES ORDER BY salary ASC,EMPLOYEE_ID DESC;

案例7:查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序

SELECT LAST_NAME,DEPARTMENT_ID,salary*12*(1+IFNULL(commission_pct,0)) FROM employees ORDER BY salary*12*(1+IFNULL(commission_pct,0)) DESC,last_name ASC;

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

SELECT LAST_NAME,salary FROM employees WHERE NOT(salary  between 8000 AND 17000) ORDER BY salary DESC;

SELECT LAST_NAME,salary FROM employees WHERE salary NOT BETWEEN 8000 AND 17000 ORDER BY salary DESC;

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

SELECT *,LENGTH(email) FROM EMPLOYEES WHERE email LIKE '%e%' order by LENGTH(email) DESC,DEPARTMENT_ID ASC;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值