【问题标题】:Is the sequence of SQL query output is fixed or may Change? [duplicate]SQL查询输出的顺序是固定的还是可以改变的? [复制]
【发布时间】:2017-10-06 14:22:31
【问题描述】:

有一个Table A

Table A 有 3 列:Col1、Col2 和 Col3。 (col1 和 col2 是table A 的主键)

表的现有记录是

查询:select * from A

 输出

  COL1 COL2 COL3
    1 2 3
    1 2 5

如果插入新记录值(1,2,6) 是否保证新的查询结果

1    2    3
1    2    5
1    2    6

或者它可能会导致下表,因为插入也可能发生在第一行:

1    2    6
1    2    3
1    2    5

如果我的选择查询返回这样的输出

1    2    6
1    2    3
1    2    5

sql查询是

select * from A where field1=1 and field2 = 2;

它是否有必要总是返回这个序列,或者这可能会有所不同?

【问题讨论】:

  • field1 and field2 are primary key of the table A,你确定吗?

标签: sql oracle


【解决方案1】:

简短的回答是否定的。

除非添加 ORDER BY 子句,否则无法保证 SELECT 查询的顺序。如果您希望保证订单,您可以编写如下查询:

SELECT field1, field2, field3
FROM a
ORDER BY field3;

有时可以通过某些方式完成 ORDER(例如,如果执行 UNION),但不能保证。

更多信息请访问this ASKTOM post 和this Stack Overflow question。

【讨论】:

  • 你能提出一些我可以验证的方法吗?
  • 什么意思,验证一下?
  • 我在我的答案中添加了一些参考。
猜你喜欢
  • 1970-01-01
  • 2021-03-26
  • 1970-01-01
  • 2020-06-05
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
  • 2017-11-18
  • 2020-10-03
相关资源
最近更新 更多