当前位置: 首页 > 编程笔记 >

在sql中不指定Order by排序是按照主键吗

姬昀
2023-03-14
本文向大家介绍在sql中不指定Order by排序是按照主键吗,包括了在sql中不指定Order by排序是按照主键吗的使用技巧和注意事项,需要的朋友参考一下

在sql中不指定Order by,排序是按照主键吗?答案是不一定。举个例子:

查询AttendanceEmpRank表,主键是AttendanceEmployeeRankId,而且是聚集索引

执行下面的语句,发现第一句不指定Order by的结果跟第二句不一样。

再看看执行计划,我们可以知道,第一句用到的是Date索引,而第二句用的是主键索引.

再看看另一组sql和查询结果:

执行计划中用到的索引也是不同的:

所以得出结论:在不指定Order by的情况下,sqlserver会根据执行计划实际查询方式来得到数据,而执行计划会根据sql中很多的因素(的查询列,where条件,order by等)而使用不同的索引,最终出来的结果很可能是不同的。

 类似资料:
  • 已知字母序列【d, g, e, c, f, b, o, a】,请实现一个函数针对输入的一组字符串 input[] = {“bed”, “dog”, “dear”, “eye”},按照字母顺序排序并打印,结果应为:dear, dog, eye, bed。 说明 本问题在网上比较常见,但这里尝试用另外一个思路,并且用python来写,与众多用c++的有所不同,且似乎短小了不少。自己感觉比网上参考到的更

  • 问题内容: 某些SQL Server允许使用通用语句,例如。我认为这不适用于MySQL,是否有任何这样的解决方法可以跨多个表进行自动选择,还是需要使用查询查询来确定主键? 我一直在解决的方法是在运行查询之前调用。有更有效的方法吗?在选择过程中,MySQL可以确定表的主键吗? 更新: 正如Gordon所指出的那样,通常在MySQL或SQL中没有官方的方式来执行此操作。SAP具有自定义功能。有一些解决

  • 我有一个带有自动增量主键列和datetime列的表。我想返回按创建日期排序的行。 我按日期或主键订购有关系吗?我想这是一个更快的by主键,而不是日期格式或时间戳。新记录将具有更大的主键。然而,每个人都按日期字段排序。

  • 问题内容: 假设我有一个查询“ select * from子句,其中id在(0,2,5,1,3)中”,我实际上希望返回的行以它们在where子句中指定的相同顺序返回。ID的顺序将随查询的不同而改变,并且该顺序没有模式。 我知道可以更改数据模型,创建临时表等。但是请相信我,这些类型的解决方案在我的情况下将行不通。我也无法在应用程序代码中更改结果对象的顺序。 我还知道,不同的数据库引擎对事物的排序方式

  • 数据库中有一个名为User的表。列如下: ID是主键,在本例中自动递增。我只有7条记录;数据的最后一个ID是7。 如何从任意数字(例如10000)开始递增ID。

  • about.ks 的限制 ( 版本情报对话框制作相关 ) 版本情报对话框就是 ( 版本情报对话框制作相关 ) 版本情报对话框范例 ( 版本情报对话框制作相关 ) BGM 使用前预备 ( BGM 的使用 ) 其他 BGM 相关指令 ( BGM 的使用 ) 总之让音乐响起来吧 ( BGM 的使用 ) 渐入・渐出 ( BGM 的使用 ) ClickableMap是什么东东? ( 地图的制作与使用 ) 地