ORDER BY Time 的问题

我看你有戏 2020-10-13 10:44:16
假如我数据库有两条记录的时间字段是相等的,两条记录假设是A,B

那当我select order by 时间字段的时候

选出来的一个表

表中 A,B的排列顺序每次都是固定的吗,还是说A,B 排列顺序会随机交换的?
...全文
370 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
我看你有戏 2020-10-14
  • 打赏
  • 举报
回复
好的谢谢大家
中国风 2020-10-13
  • 打赏
  • 举报
回复
针对查询T-SQL当没有覆盖索引时会用聚集索引或堆
中国风 2020-10-13
  • 打赏
  • 举报
回复
e.g.
USE Test
GO
CREATE TABLE T1(A INT ,B INT);
INSERT INTO T1 VALUES(1,1),(2,2),(1,1)
SELECT * FROM dbo.T1
/*
A	B
1	1
2	2
1	1
*/
CREATE INDEX IX_T1 ON dbo.T1(A,B);
SELECT * FROM dbo.T1
/*
A	B
1	1
1	1
2	2
*/
中国风 2020-10-13
  • 打赏
  • 举报
回复
有索引还是堆?是堆按写入顺序,不是按索引排序
shoppo0505 2020-10-13
  • 打赏
  • 举报
回复
引用 4 楼 吉普赛的歌 的回复:
对于不能唯一的排序字段, 建议增加主键一起排序, 确保每次查询的位置固定。 这对用户查看分页来说, 是非常有意义的。
+1
卖水果的net 版主 2020-10-13
  • 打赏
  • 举报
回复
如果在 order by 没有使用唯一键,那么结果一定是随机的。可能你在开发环境运行了 10000 次,发现顺序是一样的,但是到生产环境运行某一段时间,就会出现不一致的情况。 其原因就是使用不同的索引,就会影响这个显示。
吉普赛的歌 版主 2020-10-13
  • 打赏
  • 举报
回复
对于不能唯一的排序字段, 建议增加主键一起排序, 确保每次查询的位置固定。 这对用户查看分页来说, 是非常有意义的。

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧