gpt4 book ai didi

oracle - 如果订单字段的值对于所有记录都相同怎么办

转载 作者:行者123 更新时间:2023-12-03 18:59:31 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why does Oracle return specific sequence if 'orderby' values are identical?

(4 个回答)


6年前关闭。




全部,假设 SQL 如下所示。

Select a, b ,c from table1 order by c

如果 table1 中的所有行在字段 c 中具有相同的字段值。我想知道每次执行 SQL 时结果的顺序是否相同。

假设 table1 中的数据看起来像下面。
a              b                 c 
-------------------------------------------
1 x1 2014-4-1
....
100 x100 2014-4-1
....
1000 x1000 2014-4-1
....

Oracle 如何按值确定相同顺序的行顺序?

已添加

它们每次都是随机序列吗?

最佳答案

一个简单的答案是 .有不保证 ORDER BY相等的值 每次都会返回相同的排序结果。在您看来它总是稳定的,但是,它可能会发生变化的原因有很多。

例如,对相等值的排序可能会在以下时间推迟:

  • 采集统计
  • 在列上添加索引

  • 例如,

    假设我有一个表 t:
    SQL> SELECT * FROM t ORDER BY b;

    A B
    ---------- ----------
    1 1
    2 1
    3 2
    4 2
    5 3
    6 3

    6 rows selected.

    对具有相似值的列进行排序就像:
    SQL> CREATE TABLE t1 AS SELECT * FROM t ORDER BY b, DBMS_RANDOM.VALUE;

    Table created.

    SQL> SELECT * FROM t1 ORDER BY b;

    A B
    ---------- ----------
    1 1
    2 1
    4 2
    3 2
    5 3
    6 3

    6 rows selected.

    因此,bot 表中的类似数据,然而, ORDER BY在具有相等值的列上,不保证相同的排序。

    关于oracle - 如果订单字段的值对于所有记录都相同怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29815366/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com