SQL查询输出的序列是固定的还是可以更改?

时间:2017-10-06 05:23:57

标签: sql oracle

有一个Table A

Table A有3列:Col1,Col2和Col3。 (Col1和col2是table A

的主键

该表的现有记录是

查询:select * from A

                   OUTPUT

  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

如果我的select查询返回像这样的输出

1    2    6
1    2    3
1    2    5

sql查询是

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

是否有必要始终返回此序列,或者这可能会有所不同?

1 个答案:

答案 0 :(得分:1)

简短的回答是否定的。

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

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

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

this ASKTOM postthis Stack Overflow question提供了更多信息。