2010-08-19 78 views
1

頂部聲明排序我有兩個SQL查詢選擇非唯一列

select * from table1 
ORDER BY column1 

Select top 10 * from table1 
ORDER by column1 

列1是一種非唯一列和表1沒有主鍵。

當我運行這兩個查詢時,我得到的行以不同的順序返回。我將這歸因於排序標準(Order By)不唯一。

我想知道正常的SELECT語句使用哪種方法來確定在這種情況下行的輸出順序以及select top語句將使用什麼。這只是隨機的嗎?

回答

2

在非唯一的情況下,不應該依賴行的輸出順序。

相反,並處訂購您想要(通過在其他ORDER BY列)

+0

+1,對於ORDER BY中的其他列的建議而言並非不重要。 – 2010-08-19 23:46:35

1

考慮它隨機 - 對結果的排序,即使它是不是在某些情況下,沒有DBMS應作出承諾如果連接不符合ORDER BY所要求的順序。