SQL ORDER BY多列排序,分组排序,sql执行顺序

直接上demo,表结构如下
在这里插入图片描述

#默认按照a列升序排序
SELECT * FROM test ORDER BY a;
#默认按照a列升序排序,如果a列值相同则接着按照b列排序,如果b列值都不同,那么则与`ORDER BY a`结果相同
SELECT * FROM test ORDER BY a,b;
#默认按照a列升序排序,如果a列值相同则接着按照b列排序,如果a,b列都相同则按照c列升序排序;如果a,b,c列值都各不相同则与`ORDER BY a`结果相同
SELECT * FROM test ORDER BY a,b,c;

在这里插入图片描述

在这里插入图片描述

order by中除了列名还可以写条件分组

直接上demo,表结构如下
在这里插入图片描述

#分为 <= 5的一组和 > 5 的一组
SELECT * FROM test ORDER BY a > 5;

在这里插入图片描述

#在<= 5的一组和 > 5 的一组前提下,组内再根据 b <= 4和 > 4 再分组
SELECT * FROM test ORDER BY a > 5,b > 4;

在这里插入图片描述

参考自
https://blog.csdn.net/ybula/article/details/91394669

sql执行顺序

SQL大致的解析流程如下

from .. on.. join.. where .. group by .. having ..select distinct ...order by ..  limit..
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值