社区
疑难问题
帖子详情
结果集排序 和 WHERE条件筛选顺序 问题
liu119144664
2010-04-07 12:13:16
1、结果集排序
select * from table_a
在没有用order by来排序的情况下,结果结是怎么排序的?
2、WHERE条件筛选顺序
select * from table_a where [la]>1 and [lb]='X'
是先筛选条件 [la]>1 还是 [lb]='X'
本人比较菜,第一次上来提问,多谢指教!
...全文
178
10
打赏
收藏
结果集排序 和 WHERE条件筛选顺序 问题
1、结果集排序 select * from table_a 在没有用order by来排序的情况下,结果结是怎么排序的? 2、WHERE条件筛选顺序 select * from table_a where [la]>1 and [lb]='X' 是先筛选条件 [la]>1 还是 [lb]='X' 本人比较菜,第一次上来提问,多谢指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
liu119144664
2012-02-14
打赏
举报
回复
sorry 不直不知道怎么给分
liu119144664
2010-04-08
打赏
举报
回复
我对 “存在聚集索引的情况下 按照聚集索引列排序出现” 这个存在怀疑:
上次有个同事用游标的时候没有用ORDER BY ,结果没有按照聚集索引排序,查了很长时间都没检查出来是这个地方有问题。
htl258_Tony
2010-04-07
打赏
举报
回复
1、结果集排序
select * from table_a
在没有用order by来排序的情况下,结果结是怎么排序的?
在没有聚集索引的情况下,按照物理地址(就是插入数据的先后顺序)来显示,不存在你说的排序.
2、WHERE条件筛选顺序
select * from table_a where [la]>1 and [lb]='X'
是先筛选条件 [la]>1 还是 [lb]='X'
看计划,理论上是先[la]>1 再 [lb]='X',如果第一天没索引,第二列有索引,优化器可能选择先计算第二列。
dawugui
2010-04-07
打赏
举报
回复
1、结果集排序
select * from table_a
在没有用order by来排序的情况下,结果结是怎么排序的?
按照物理地址(就是插入数据的先后顺序)来显示,不存在你说的排序.
2、WHERE条件筛选顺序
select * from table_a where [la]>1 and [lb]='X'
是先筛选条件 [la]>1 还是 [lb]='X'
这个不好说,系统会去自动优化查询的顺序,你可以查看执行计划.
不过就你这个条件,理论上是先[la]>1 再 [lb]='X'.
dawugui
2010-04-07
打赏
举报
回复
[Quote=引用 7 楼 liu119144664 的回复:]
我也像大家这样想过,但是我想知道有什么比较官方的说明!谢谢!
[/Quote]
你去问问微软的人.
liu119144664
2010-04-07
打赏
举报
回复
我也像大家这样想过,但是我想知道有什么比较官方的说明!谢谢!
SQL77
2010-04-07
打赏
举报
回复
[Quote=引用 3 楼 feixianxxx 的回复:]
第一题:
存在聚集索引的情况下 按照聚集索引列排序出现
第二题:
优化器自动优化
[/Quote]
1有聚集的话就是按聚集的,没聚集就直接按照你插入数据的顺序,
2UP小麦,优化器会根据数据自动优化
幸运的意外
2010-04-07
打赏
举报
回复
了解一下权威人士的答案.
--小F--
2010-04-07
打赏
举报
回复
膜拜楼上几位大仙
feixianxxx
2010-04-07
打赏
举报
回复
第一题:
存在聚集索引的情况下 按照聚集索引列排序出现
第二题:
优化器自动优化
深入理解SQL操作:
排序
、
筛选
与连接
本文深入介绍SQL操作,包括
排序
、
筛选
、连接、子查询等。
排序
子句ORDER BY可按字段
顺序
排序
;WHERE子句能设定
条件
筛选
数据;连接操作可整合多表数据;子查询让复杂逻辑更简洁。还提到结果
集
和游标概念,最后解答相关
问题
,强调实践对掌握SQL的重要性。
告别数据处理陷阱:Nushell where/first命令边界值深度解析
本文深入剖析Nushell中where与first命令组合使用的典型边界值陷阱,包括空结果
集
异常、多
条件
优先级混淆及未
排序
数据下的不确定性取值
问题
。重点阐述其底层
筛选
逻辑、管道执行
顺序
,并给出防御性编程、显式括号分组、预
排序
保障确定性等实用技巧。结合日志分析实战案例与迭代器高级用法,强化健壮数据处理能力。
MySQL ORDER BY:对查询结果
排序
和MySQL WHERE:
条件
查询数据
本文详细介绍了MySQL中的ORDERBY关键字用于对查询结果进行
排序
的方法,包括单字段和多字段
排序
,以及WHERE关键字用于
条件
查询的数据
筛选
。同时涵盖了逻辑运算符在多
条件
查询中的应用。,
mysql中group by与where等对结果
集
的处理
顺序
本文深入解析SQL查询中where、groupby、having及orderby的使用技巧,详细阐述了它们的执行
顺序
与应用场景,帮助读者掌握高级SQL查询技能。
where、having、group by、order by、limit的区别和使用
顺序
本文详细介绍了数据库查询中where、having、group by、order by和limit的区别及使用
顺序
。where子句用于在分组前
筛选
条件
,having则用于分组后的
条件
过滤;GROUP BY用于数据分组,ORDER BY进行结果
排序
,LIMIT限制返回的记录数。where效率高于having,order by需置于where之后,limit之前。
疑难问题
22,296
社区成员
121,726
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章