select * from test 时排序如下 246684 246709 246711 246512
我觉得应该是 246512 246684 246709 246711 非写成select * from test order by id才正确
------解决方案--------------------
SQL SERVER 数据库中它是按照集合查询的。也就是说:在集合中,顺序是无序的。它会随即出现。 而order by 是对这个的一个排序,是按顺序列出,但在性能上的消耗是比较大的。
------解决方案-------------------- order by 列中的索引(非聚集)不包含你select列表的列的话,是不会使用索引的 你可以看下执行计划
也就是说,如果有表tb 列:id,val,dt有聚集索引id,非聚集索引val
那select * from tb order by val 是不会直接使用非聚集索引的,而要使用一个sort的操作符来排序。
如果select id,val FROM tb 则可以直接在非聚集索引val的顺序来显示。
------解决方案--------------------