关于SQL Distinct默认结果集排序的探讨? 本帖最后由 hi_web 于 2014-04-11 11:34:58 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 实事求是的讲,就现在我遇到的情况,如果distinct 不写order by 的话,实际结果集的输出顺序依赖于两个条件。 1、生成的查询计划的顺序(在不同版本的sql server 解释同一个语句的执行计划会有所不同,统计信息不同也会有所不同)2、数据存储和访问的顺序 (这个要看是否有索引等)还是需要具体情况,具体分析的。个人愚见,参考 没有order by子句的所有查询都不保证顺序,即使有聚集索引 因为优化器可能会选择并行处理,或者在多文件情况下不按“期待”顺序扫描数据,所以无法保证数据的顺序。唯一能确保顺序的只有order by。distinct内置是需要排序然后去重的,但是最终结果可能又会乱掉。另外根据sqlserver排序规则,不同的排序规则也有不同的结果 datetime问题 如何在SQL表里把一列中某一列作为变量然后相同值累加排序 【新问题】如何实现分组统计的时候,没有的显示为0? 这样 为什么提示shrq无效? [重发]求教一个MSSQL写法,在线等 聚集索引字段选择 关于生日在一个时间段内出现的次数,求高手,最简单的方法 DTS导入导出的问题,UP者有分噢! MSSQL 如何插入带 分号 ' 的值 靠什么吃饭?我该学什么才有前途? 请问,关于SQL server 连接时 Provider=SQLOLEDB.1 的问题 SQL 减法问题!
1、生成的查询计划的顺序(在不同版本的sql server 解释同一个语句的执行计划会有所不同,统计信息不同也会有所不同)
2、数据存储和访问的顺序 (这个要看是否有索引等)还是需要具体情况,具体分析的。
个人愚见,参考