同一条SQL排序执行结果顺序为什么会变?主键为GUID,按其中一个属性A(datetime) 排序(但A刚好都相同),如select * from tb order by A ASC
但出来的结果顺序会变,有时某些数据会排在最后,有时又会排在中间,反复无常无规律。现在我要的顺序是优先按A排序,然后按数据库逻辑存储顺序排序(也就是select * 不排序时的顺序)。但不想更改表结构。PS:没有其他外界或服务干扰。
但出来的结果顺序会变,有时某些数据会排在最后,有时又会排在中间,反复无常无规律。现在我要的顺序是优先按A排序,然后按数据库逻辑存储顺序排序(也就是select * 不排序时的顺序)。但不想更改表结构。PS:没有其他外界或服务干扰。
解决语句如下:
ORDER BY A ASC,ROW_NUMBER() OVER (ORDER BY (SELECT 1))