SQL order by子句是否保证稳定(按标准)

SQL order by子句是否保证稳定(按标准),sql,database,sql-order-by,Sql,Database,Sql Order By,我使用下面的查询来查询两列上有ORDERBY的DB 按a asc、b asc顺序从表1中选择a、b、c 我的问题是,排序是否保证(按标准)稳定。虽然它不稳定没有任何意义,但我问这个是因为我在网上读到了 该标准不阻止使用稳定排序,但它也 不需要它 这类产品不能保证稳定。我认为SQL Server很好地解释了如何实现稳定排序: 使用偏移量和 获取时,必须满足以下条件: 查询使用的基础数据不得更改。也就是说,两行中的任何一行 未更新查询中的所有页面请求或查询中的所有页面请求 在单个事务中使用快照或 可

我使用下面的查询来查询两列上有ORDERBY的DB

按a asc、b asc顺序从表1中选择a、b、c

我的问题是,排序是否保证(按标准)稳定。虽然它不稳定没有任何意义,但我问这个是因为我在网上读到了

该标准不阻止使用稳定排序,但它也 不需要它


这类产品不能保证稳定。我认为SQL Server很好地解释了如何实现稳定排序:

使用偏移量和 获取时,必须满足以下条件: 查询使用的基础数据不得更改。也就是说,两行中的任何一行 未更新查询中的所有页面请求或查询中的所有页面请求 在单个事务中使用快照或 可序列化事务隔离。如需有关这些的更多信息 事务隔离级别,请参见设置事务隔离级别 (Transact-SQL)。ORDER BY子句包含列或组合 保证唯一的列的数目

理解排序不稳定的最简单方法是返回表的定义。SQL中的表本质上是无序的。因此,没有命令可以依靠“稳定”


作为第二个考虑,排序可以并行实现。在大多数并行排序中,公共键在一起时没有关于其原始顺序的信息(除非在排序键中显式或隐式地实现了这一点)。

我认为这句话是正确的。下一本书也是这样说的:我认为这取决于实现。您使用的是哪种SQL?不了解标准:),我可以说,排序不需要是稳定的。想象一下,行对于可排序字段具有相同的值——它们的顺序是不确定的。