使用'select*'的默认SQL结果排序顺序是什么?

Flo*_*ler 3 sql oracle

如果我执行a select * from mytable,将以哪种顺序显示记录?它会采用第一列还是通过某种元数据进行排序?

我正在使用Oracle数据库.

a_h*_*ame 12

NO默认的"排序"命令.关系表中的未排序.

获得特定订单的唯一(真正:唯一)方法是使用 ORDER BY

无论你在运行" SELECT无" 时看到什么顺序ORDER BY都是纯粹的巧合,并且可以随着下一次执行而改变.

订单可能因各种原因而改变:

  • 其他会话正在运行相同的语句
  • 表格已更新
  • 执行计划发生了变化
  • ...

这是一个小SQLFiddle,向您展示"订单"如何改变:http://sqlfiddle.com/#!4/19d14/2

请注意,初始"订单"与插入订单甚至不同!

  • @FlorianMüller - 每天,在我上班的路上,我看到一辆蓝色汽车,接着是一辆红色汽车,然后是绿色汽车.那是因为某种原因,是否有理由让我发现这必须*总是*发生?或者这只是一个巧合,而不是我应该依靠永远是真的吗? (7认同)
  • @RenéNyffenegger你是否指出了汽车颜色排序或Oracle行排序的不可靠性?:) (2认同)