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去重之后)中的列值,而不是原始数据集中的列值。
浙公网安备 33010602011771号