SQL语句执行顺序
SQL语句执行顺序
- FROM:确定数据源,包括所有涉及的表。
- JOIN和ON:处理表的连接及连接条件。
- WHERE:筛选行。
- GROUP BY:分组数据。
- HAVING:筛选分组后的结果。
- SELECT:选择需要的列。
- DISTINCT:去除重复行。
- ORDER BY:排序结果。
- LIMIT/OFFSET:限制返回的行数。
distinct和order执行顺序,先去重,在排序当DISTINCT和ORDER BY一起使用时,需要注意以下几点:
1.排序基于去重后的结果
ORDER BY总是对DISTINCT去重后的结果集进行排序。因此,如果你只对部分列使用DISTINCT,那么排序也将基于这些去重后的列。
2.ORDER BY和distinct的列可以不同
列可以是DISTINCT未包含的列:虽然DISTINCT仅对选定的列进行去重,但ORDER BY可以包含未在DISTINCT中指定的列。然而,这样做可能会导致排序结果不如预期,因为排序是基于整个结果集(在DISTINCT去重之后)中的列值,而不是原始数据集中的列值。
合集:
SQL学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理