頂部聲明排序我有兩個SQL查詢選擇非唯一列
select * from table1
ORDER BY column1
Select top 10 * from table1
ORDER by column1
列1是一種非唯一列和表1沒有主鍵。
當我運行這兩個查詢時,我得到的行以不同的順序返回。我將這歸因於排序標準(Order By)不唯一。
我想知道正常的SELECT語句使用哪種方法來確定在這種情況下行的輸出順序以及select top語句將使用什麼。這只是隨機的嗎?
頂部聲明排序我有兩個SQL查詢選擇非唯一列
select * from table1
ORDER BY column1
Select top 10 * from table1
ORDER by column1
列1是一種非唯一列和表1沒有主鍵。
當我運行這兩個查詢時,我得到的行以不同的順序返回。我將這歸因於排序標準(Order By)不唯一。
我想知道正常的SELECT語句使用哪種方法來確定在這種情況下行的輸出順序以及select top語句將使用什麼。這只是隨機的嗎?
在非唯一的情況下,不應該依賴行的輸出順序。
相反,並處訂購您想要(通過在其他ORDER BY列)
考慮它隨機 - 對結果的排序,即使它是不是在某些情況下,沒有DBMS應作出承諾如果連接不符合ORDER BY所要求的順序。
+1,對於ORDER BY中的其他列的建議而言並非不重要。 – 2010-08-19 23:46:35