sql server where、group by、order by 执行顺序

select * from Tab where 条件1 group by 条件2 order by 条件3 如题执行时  条件的检索顺序,麻烦说一下

先where 条件1,再 group by 条件2再 order by 条件3

如果声明了 GROUP BY 子句,输出就分成匹配一个或多个数值的不同组里。 如果出现了 HAVING 子句,那么它消除那些不满足给出条件的组。

如果声明了 ORDER BY 子句,那么返回的行是按照指定的顺序排序的。 如果没有给出 ORDER BY,那么数据行是按照系统认为可以最快生成的方法给出的。

虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下:
  SELECT select_list
  [ INTO new_table ]
  FROM table_source
  [ WHERE search_condition ]
  [ GROUP BY group_by_expression ]
  [ HAVING search_condition ]
  [ ORDER BY order_expression [ ASC | DESC ] ]
  可以在查询之间使用 UNION 运算符,以将查询的结果组合成单个结果集。

也就是说,order by放在最后面。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-08
先执行where、
然后是group 、
然后是having 、
最后是order by
如果你用的是plspl的话,你可以按F5看执行计划