mssql sqlserver中sql语句的执行顺序分享(sqlserver入门者必看)


摘要:
下文将分享sqlserver中sql语句的执行顺序



执行顺序:
1. from
2. on
3. join
4. where
5. group by
6. sum avg 等聚合条件
7. having 聚合函数筛选器
8. select
9. distinct
10. order by
11. top

sql脚本执行顺序说明:
sql脚本在每个步骤运行的时候都会同时生成虚拟表,作为下一个步骤的输入表
1:通过from 将多张表进行相关计算,获取虚拟表1
2:对虚拟表1进行 on联结 过滤多余的行,生成虚拟表2
3:对 full join left join right join 在虚拟表2上添加on条件之外必须显示的行,生成虚拟表3
4:对虚拟表3进行条件过滤,生成虚拟表4
5:对虚拟表4,进行数据分组,生成虚拟表5
6:对虚拟表5,进行聚合计算,生成虚拟表6
7:对聚合计算后的数据,采用having 过滤器过滤,生成虚拟表7
8:将待呈现给用户的列放入虚拟表8中
9:应用distinct 移除相同的行,生成虚拟表9
10:使用order by关键字,将虚拟表9生成为一个游标
——————————————————

统计客户类型为 A ,总销售额大于1000 的客户名称,如下所示:

   select customName,sum(qty) as [总销售额]
    from tableName 
	where customSort='A'
	group by customName
	having sum(qty) >1000
	order by [总销售额] desc 


从以上的脚本,我们可以分析出 sql的执行顺序:
1.from ,从tableName中获取源数据
2.运行where条件过滤数据
3.运行group by 分组数据
4.运行sum聚合
5.运行having sum ,筛选订货量大于1000的客户
6.按照订货量倒序排列,并呈现给用户