小编use*_*438的帖子

ORDER BY和ROW_NUMBER()是否具有确定性?

我在几个数据库引擎中不时使用SQL几年但是理论知识很少,所以我的问题可能对你们中的某些人来说非常"愚蠢".但它现在变得很重要,所以我不得不问.

想象一下具有非唯一列的表Url status.对于这个问题,假设我们有大量的行和状态在每个记录中具有相同的值.

并想象我们执行多次查询:

SELECT * FROM Urls ORDER BY status
Run Code Online (Sandbox Code Playgroud)
  1. 我们每次都得到相同的行顺序吗?如果我们做了如果添加一些新行会发生什么?它是否会更改订单,或者新记录会附加到结果的末尾?如果我们没有获得相同的订单 - 在什么条件下依赖此订单?

  2. 不要ROW_NUMBER() OVER (ORDER BY status)将返回上述顺序相同,或者是基于不同的排序机制的查询?

sql t-sql sql-server

7
推荐指数
2
解决办法
2610
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1