日期:2014-05-18  浏览次数:20413 次

同一条SQL排序会变如何解决?
同一条SQL排序执行结果顺序为什么会变?

主键为GUID,按其中一个属性A(datetime) 排序(但A刚好都相同),如select * from tb order by A ASC
但出来的结果顺序会变,有时某些数据会排在最后,有时又会排在中间,反复无常无规律。现在我要的顺序是优先按A排序,然后按数据库逻辑存储顺序排序(也就是select * 不排序时的顺序)。但不想更改表结构。

PS:没有其他外界或服务干扰。

------解决方案--------------------
order by A desc(asc),getdate()???
------解决方案--------------------
select * from tb order by A ASC,GUID 

------解决方案--------------------
SQL code
.. order by A desc, GUID

------解决方案--------------------
没有唯一的东西来指定排序。SQL不保证每次出来的结果顺序一致。。。微软已经说明了
------解决方案--------------------
探讨
select * from tb order by A ASC,GUID