【问题标题】:Does a SELECT statement select the data in the same order everytime? [duplicate]SELECT 语句是否每次都以相同的顺序选择数据? [复制]
【发布时间】:2017-01-05 08:45:25
【问题描述】:

假设我有一张表Empemp_idemp_name。我在表中插入 3 个条目 - (1,A) (2,B) (3,C)

我没有创建任何主键,也没有添加任何索引。

现在,当我运行select * statement 时,数据是否每次都显示为(1,A),(2,B),(3,C),或者是否有可能输出为(2,B), (1,A), (3,C) 或其他变体。

【问题讨论】:

  • 实际上,在这种情况下 - 三行,按此顺序插入,无 CI,无 NCI,无更新/删除,无重建等 - 这些行将按此顺序返回。但当然,任何模式或数据或引擎更改都可能破坏它,因此需要 ORDER BY。顺便说一句,我不明白这个问题怎么会被投票,已经回答了这么多次了??

标签: sql-server tsql


【解决方案1】:

数据可以按任意顺序、按键、索引甚至随机显示。

“强制”并保证数据每次都以相同的顺序显示的唯一方法是使用ORDER BY 子句并强制优化器按照您特别要求的顺序选择数据。

【讨论】:

    【解决方案2】:

    您需要添加“ORDER BY”子句来保证顺序。否则,取决于数据库引擎、配置和/或架构。

    阅读以下stackoverflow post,了解更详细的原因。

    【讨论】:

      猜你喜欢
      • 2020-03-31
      • 2021-10-09
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2020-09-30
      • 2011-01-11
      • 1970-01-01
      相关资源
      最近更新 更多