CSDN博主:【java_wxid】
CSDN博主:点击【Java廖志伟】
CSDN社区:点击【幕后大佬】
码云:点击【互联网Java工程师知识扫盲】
随笔 - 882,  文章 - 0,  评论 - 1,  阅读 - 51800

作者:java_wxid
回退至Mysql数据库理论与实战
#进阶3:排序查询
语法:
select 查询列表——————③
from 表名——————①
where 条件——————②
order by 排序列表 asc|desc;——————④
特点:
1、
asc代表的是升序。升序是默认行为
desc代表的是降序。
2、排序列表支持单个字段、表达式、函数、别名,也支持以上的组合
3、order by子句一般放在查询语句的最后!

#1、通过单个字段进行简单的排序
#案例;按工资降序
SELECT * FROM employees ORDER BY salary DESC;
#2、通过表达式进行排序
#案例:查询员工编号>110的姓名、编号、年薪,并且按年薪升序
SELECT last_name,employee_id,salary*12*(1+IFNULL(commission_pct,0))
FROM employees
WHERE employee_id>110
ORDER BY salary*12*(1+IFNULL(commission_pct,0));
#3、通过别名进行排序
#案例:查询员工编号>110的姓名、编号、年薪,并且按年薪降序
SELECT last_name,employee_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
WHERE employee_id>110
ORDER BY 年薪 DESC;
#4、通过函数的结果进行排序
#案例:按姓名的长度进行升序
SELECT LENGTH(last_name) len,last_name
FROM employees
ORDER BY len;
#5、支持按多个字段或多个表达式排序
#案例:先按姓名的长度进行升序,然后再按姓名的字符进行降序
SELECT LENGTH(last_name) len,last_name
FROM employees
ORDER BY len,last_name DESC;
#1. 查询员工的姓名和部门号和年薪,按年薪降序 按姓名升序
SELECT last_name,department_id,salary*12*(1+IFNULL(commission_pct,0)) 年薪
FROM employees
ORDER BY 年薪 DESC,last_name ASC;
#2. 选择工资不在 800017000 的员工的姓名和工资,按工资降序
SELECT last_name,salary
FROM employees
WHERE salary NOT BETWEEN 8000 AND 17000
ORDER BY salary DESC;
#3. 查询邮箱中包含 e 的员工信息,并先按邮箱的字节数降序,再按部门号升序
SELECT *
FROM employees
WHERE email LIKE '%e%'
ORDER BY LENGTH(email) DESC,department_id ASC;
posted on   我是廖志伟  阅读(3)  评论(0编辑  收藏  举报  
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

南北踏尘
点击右上角即可分享
微信分享提示