ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 标准的 SQL 解析顺序

标准的 SQL 解析顺序

原创 Linux操作系统 作者:iSQlServer 时间:2010-10-08 13:42:59 0 删除 编辑
在CSDN看到看到一条SQL查询语句的问题,如下所示:

select *,row_number() over(order by productname) as rownumber
from products where rownumber between 10 and 20 

 

问题是这条SQL语句会报错。经过分析发现,这跟SQL的解析顺序有关系。因为在计算where的时候row_number还没算出来。所以SQL语句会报错。

标准SQL解析顺序如下所示:

   (1).FROM 子句, 组装来自不同数据源的数据
   (
2).WHERE 子句, 基于指定的条件对记录进行筛选
   (
3).GROUP BY 子句, 将数据划分为多个分组
   (
4).使用聚合函数进行计算
   (
5).使用 HAVING 子句筛选分组
   (
6).计算所有的表达式
   (
7).使用 ORDER BY 对结果集进行排序

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/16436858/viewspace-675541/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-10-17

  • 博文量
    1319
  • 访问量
    2342769