我有一個T-SQL查詢到我需要返回頂部行的表。在MySQL中,這是按預期工作的,但在SQL Server中,我得到的返回的數據非常令人費解。SQL Server TOP關鍵字返回不同的結果
我附上了三個屏幕截圖:表格設計中的1個,當查看前1000行時只返回前10行和返回1個數據時返回的數據中的1個。您會注意到最上面一行包含兩個查詢之間名稱列的不同信息。
查詢的唯一區別是TOP
關鍵字的計數值。該表共有7行數據。 Top 1000
的結果包含返回的行的正確排序。這裏發生了什麼?
爲什麼SQL Server根據TOP
關鍵字的計數值更改返回的行的順序?任何人都可以解釋或提供一種方法來保持這種一致性,無論有多少行被返回?
這就是所謂的非確定性排序。你需要添加tiebreaker,即。按項目編號排序。 –