2017-10-06 46 views
0

有一個Table ASQL查詢輸出的順序是固定的還是可能更改?

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 

,如果我選擇查詢返回這樣

1 2 6 
1 2 3 
1 2 5 

輸出的SQL查詢

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

它是否有必要始終返回這個序列或這可能會有所不同?

+0

'field1和field2是表A'的主鍵,你確定嗎? –

回答

1

簡短的回答是沒有。

除非添加ORDER BY子句,否則不保證SELECT查詢的順序。如果你想爲了保證,你可以寫這樣的查詢:

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

有一些方法的順序可有時做(例如,如果執行UNION),但它不能保證。

更多信息請見this ASKTOM postthis Stack Overflow question

+0

你能提出一些我可以驗證的方法嗎? –

+0

你是什麼意思,驗證? – bbrumm

+0

我已經添加了一些對我的答案的引用。 – bbrumm