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

2012-02-07 19:39

先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放在最后面。

时间: 2024-10-11 21:19:23

sql server where、group by、order by 执行顺序的相关文章

SQL Server 之 GROUP BY、GROUPING SETS、ROLLUP、CUBE

原文:SQL Server 之 GROUP BY.GROUPING SETS.ROLLUP.CUBE 1.创建表 Staff CREATE TABLE [dbo].[Staff]( [ID] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](50) NULL, [Sex] [varchar](50) NULL, [Department] [varchar](50) NULL, [Money] [int] NULL, [CreateDate] [date

sql语句select group by order by where一般先后顺序

写的顺序:select ... from... where.... group by... having... order by..执行顺序:from... where...group by... having.... select ... order by... Mysql 全值匹配我最爱,最左前缀要遵守: 带头大哥不能死,中间兄弟不能断: 索引列上少计算,范围之后全失效: LIKE百分写最右,覆盖索引不写星: 不等空值还有or,索引失效要少用. 原文地址:https://www.cnblog

SQL server 维护计划中 “清除维护任务” 执行报错

SQL server 维护计划中 “清除维护任务” 执行报错,错误如下: 执行查询“EXECUTE master.dbo.xp_delete_file 0,N'',N'',N'2019...”失败,错误如下:“执行扩展存储过程时出错: 参数无效”.失败的原因可能有: 查询本身有问题.未正确设置 "ResultSet" 属性.未正确设置参数或未正确建立连接. 解决方法:检查路径是否为空 原文地址:https://www.cnblogs.com/YokyFitting/p/10936924

SQL Server中多表连接时驱动顺序对性能的影响

原文:SQL Server中多表连接时驱动顺序对性能的影响 本文出处:http://www.cnblogs.com/wy123/p/7106861.html (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 最近在SQL Server中多次遇到开发人员提交过来的有性能问题的SQL,其表面的原因是表之间去的驱动顺序造成的性能问题,具体表现在(已排除其他因素影响的情况下),存储过程偶发性的执行时间超出预期,甚至在调试的时候

SQL server 关于 GROUP BY 详细讲解和用法

1. Group By 语句简介: Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理. P.S. 这里真是体会到了一个好的命名的力量,Group By从字面是直接去理解是非常好理解的.恩,以后在命名的环节一定要加把劲:).话题扯远了. 2. Group By 的使用: 上面已经给出了对Group By语句的理解.基于这个理解和SQL Server 2

【sql server inject】使用动态查询执行sql语句实例

应某少年要求授权测试一个存在报错注入点的站点,可读取数据库名,但是sqlmap执行–os-shell选项就会莫名当掉: 分步骤测试了几次,发现xp_cmdshell是开启状态,但用sqlmap注入却无法利用XP_cmdshell执行命令? 正好最近在读[SQL注入攻击与防御],感觉这真是一个值得实践的好目标! 为了简化测试步骤,所以文章分为5次进行记录: 0x1 sqlmap常用语句测试 测试1目的:执行cmd命令 测试1结果,测试初期无法连接: ------------------------

SQL SERVER 2008复制数据库时发生执行SQL Server代理作业错误

1. 情况说明 在利用SQL SERVER数据库复制向导,能够很方便的将一个数据库从一台服务器复制到另一台服务器上,具体操作步骤也十分简单. 不过在实际操作过程常发生“执行SQL SERVER代理作业错误”,点击查看详细会提示“作业失败 有关详细信息,请查看目标服务器上的事件日志”. 2. 处理方案 发生这种情况的一般原因是目标服务器的SQL SERVER代理服务的权限过低.更改代理服务权限为LocalSystem账户即可. A. 开始–程序–SQL SERVER 配置管理器 B. 点击左侧“S

sql server service broker中调用存储过程执行跨库操作,不管怎么设置都一直提示 服务器主体 "sa" 无法在当前安全上下文下访问数据库 "dbname"。

用sql server自带的消息队列service borker,调用存储过程中,执行了一个跨库的操作,先是用了一个用户,权限什么都给够了,但是一直提示 服务器主体 "user" 无法在当前安全上下文下访问数据库 "dbname". 想着是架构方面的问题,换sa还是不行.查到微软的一篇文章 提示需要开数据库的 ALTER DATABASE current_db SET TRUSTWORTHY ON 我把跨的那个库设置了还是不行.最后自己写测试代码,代码如下: cre

SQL Server自动化运维系列——批量执行SQL脚本(Power Shell)

需求描述 一般在生产环境中,在投产的情况下,需要批量的来执行SQL脚本文件,来完成整个投产,如果投产文件比较多的情况下,无疑这是一个比较痛苦的过程,所以本篇通过PowerShell脚本来批量完成. 监控脚本 <#批量执行SQL脚本文件#> <#===========================================#> $serverInstance="WUXUEL1" $Database="111" #$userName=&q