进阶三:排序查询(进阶关键字Order By)

1、语法:

select 查询列表 from 表名 where 筛选条件 order by 排序列表

where可有可没有

2、执行顺序:

​ 1.from子句
​ 2.where子句
​ 3.select子句
​ 4.order by子句(查出来了再排序)

举例:
select *
from employees
where salary>10000
order by salary;

3、特点:

1.排序列表是可以是单个字段多个字段表达式函数,列数,别名,以及以上的组合
2.升序:通过 asc ,默认行为
降序:通过desc

一、按照单个字段排序

#案例1:将员工编号>120的员工信息进行工资的升序(ASC)
SELECT *
FROM employees
WHERE employee_id>120
ORDER BY salary ASC;

#案例2:将员工编号>120的员工信息进行工资的降序(desc)
SELECT *
FROM employees
WHERE employee_id>120
ORDER BY salary DESC;

二、按表达式排序

#案例一:对有奖金的员工,按年薪降序
SELECT *,salary12(1+commission_pct) 年薪
FROMemployees
WHERE commission_pct IS NOT NULL;
ORDER BY salary12(1+commission_pct) DESC;

三、按别名排序(执行顺序)

#案例一:对有奖金的员工,按年薪降序
SELECT *,salary12(1+commission_pct) 年薪
FROMemployees
WHERE commission_pct IS NOT NULL;
ORDER BY 年薪 DESC;

四、按函数的结果排序

#案例1:按姓名的自数长度进行排序
SELECT last_name
FROM employees;

SELECT LENGTH(last_name),last_name
FROM employees
ORDER BY LENGTH(last_name);

五、按多个字段排序

#案例1:查询员工的姓名,部门编号,工资,先按工资升序,再按部门编号排序

当出现工资一样时

SELECT last_name,department_id,salary
FROM employees
ORDER BY salary ASC,department_id DESC;

六、按列数排序(用的较少),直接写列的索引,2就代表第二列

SELECT * FROM employees ORDER BY 2 DESC;

排序查询示例

#进阶3:排序查询
/*
语法:
select 查询列表
from 表名
【where 筛选条件】
order by 排序列表

执行顺序:
	1.from子句
	2.where子句
	3.select子句
	4.order by子句(查出来了再排序)
	
	举例:
	select *
	from employees
	where salary>10000
	order by salary;
	
特点:
1.排序列表是可以是单个字段,多个字段,表达式,函数,列数,以及以上的组合
2.升序:通过 asc ,默认行为
  降序:通过desc
*/

#一、按照单个字段排序
#案例1:将员工编号>120的员工信息进行工资的升序(ASC)
SELECT *
FROM `employees`
WHERE `employee_id`>120
ORDER BY `salary` ASC;

#案例2:将员工编号>120的员工信息进行工资的降序(desc)
SELECT *
FROM `employees`
WHERE `employee_id`>120
ORDER BY `salary` DESC;

#二、按表达式排序
#案例一:对有奖金的员工,按年薪降序
SELECT *,`salary`*12*(1+commission_pct) 年薪
FROM`employees`
WHERE `commission_pct` IS NOT NULL;
ORDER BY `salary`*12*(1+commission_pct) DESC;


#三、按别名排序
#案例一:对有奖金的员工,按年薪降序
SELECT *,`salary`*12*(1+commission_pct) 年薪
FROM`employees`
WHERE `commission_pct` IS NOT NULL;
ORDER BY 年薪 DESC;

#四、按函数的结果排序
#案例1:按姓名的自数长度进行排序
SELECT `last_name`
FROM `employees`;


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

#五、按多个字段排序
#案例1:查询员工的姓名,部门编号,工资,先按工资升序,再按部门编号排序

SELECT `last_name`,`department_id`,`salary`
FROM `employees`
ORDER BY `salary` ASC,`department_id` DESC;

#六、按列数排序(用的较少),直接写列的索引,2就代表第二列
SELECT * FROM `employees` ORDER BY 2 DESC;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值