SQL逻辑查询语句执行顺序

本文详细介绍了SQL逻辑查询语句的执行顺序,从FROM开始,通过WHERE筛选,再到GROUP BY分组、HAVING过滤组,然后SELECT选择字段,ORDER BY排序,以及TOP和OFFSET-FETCH的使用。同时讲解了三值逻辑和分隔标识符名称的重要性。
摘要由CSDN通过智能技术生成
SELECT empid, OrderYear=YEAR(orderdate), Numbers=COUNT(*)
FROM Sales.Orders
WHERE custid=71
GROUP BY empid, YEAR(orderdate)
HAVING COUNT(*)>1
ORDER BY empid, OrderYear 

SQL逻辑查询语句执行顺序

  1. FROM:从Sales.Orders表中查询行;
  2. WHERE:筛选出custid=71的订单;
  3. GROUP BY:根据empid, YEAR(orderdate)对订单进行分组;
  4. HAVING:筛选出大于1个订单的组;
  5. SELECT:返回每组的雇员ID、订单年度、订单数量;
  6. ORDER BY:按照雇员ID、订单年度排序;

FROM

FROM子句是逻辑化处理的第一个查询子句,此子句指定要查询的表名称和进行多表运算的表运算符。

WHERE

在WHERE子句中,可以指定一个谓词或逻辑表达式来筛选由FROM阶段返回的行。只有逻辑表达式计算结果为TRUE的行,由WHERE阶段返回到后面的逻辑查询处理阶段。

GROUP BY

GROUP BY阶段允许用户把前面逻辑查询处理阶段返回的行排列到组中,组是根据你在GROUP BY子句中指定的元素而确定的。GROUP BY阶段会为WHERE阶段返回的数据,根据指定的元素的每一个唯一组合生成一个组。如果查询涉及分组,那么GROUP BY阶段后的所有阶段(包括HAVING、SELECT和ORDER BY)都必须是对组的操作,而不是对单个行进行操作。
不参与GROUP BY列表中的元素仅允许作为一个聚合函数的输入,如COUNT、SUM、AVG、MIN、MAX等。在GROUP BY子句之后处理的

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值