Oracle SQL -Query结果未根据索引排序



我有一个带有5列的表格,

column1, column2, column3, column4, column5
of which column1, column2 and column3 constitute 'primary key'
temp_table
Column1 Column2 Column3 Column4 Column5
2 209 Raj Kumar K
2 27 Arvind Ram R
2 227 Mahesh Kumar M

每当我查询表时,即使我不在查询中下达订单,结果也将由主键列订购。

Select Column1, Column2, Column3 from temp_table;

每次我运行此查询时,我都会得到结果,

Column1 Column2 Column3
2 27 Arvind
2 209 Raj
2 227 Mahesh

,但仅在一个特定的实例中,查询结果不是由主键列订购的。

结果如下,

Column1 Column2 Column3
2 209 Raj
2 27 Arvind
2 227 Mahesh

有人可以帮助找到原因。

即使我不在查询中下达订单

如果您期望在结果集中有可重现和确定性的订购,则应始终使用ORDER BY子句。您不应在SQL表中假设任何固有的顺序,因为在(无序)集后对表进行了建模。关于为什么在一个实例中更改订单的原因,也许在该实例中存储或可能被缓存的基础数据的方式有所不同。但是无论如何,如果您期望某个订单,请始终使用ORDER BY

您必须使用ORDER BY喜欢:

Select Column1, Column2, Column3 
from temp_table
order by Column?;

并选择所需的列。您最终也可以使用DESCASC,例如:

Select Column1, Column2, Column3 
from temp_table
order by Column? ASC;

用于减少或增加的坐标。

最新更新