當我執行如SELECT col1, col2, col3 FROM table
這樣的查詢時,它會按照主鍵升序進行排序。SQL Server中是否有「按列排序」?
我只是想知道是否有方法來指定不同的列,如ORDER BY CreatedDate DESC
如果沒有Order By子句?
我懷疑它(因爲這將是非常直觀的,但只是想反正。
當我執行如SELECT col1, col2, col3 FROM table
這樣的查詢時,它會按照主鍵升序進行排序。SQL Server中是否有「按列排序」?
我只是想知道是否有方法來指定不同的列,如ORDER BY CreatedDate DESC
如果沒有Order By子句?
我懷疑它(因爲這將是非常直觀的,但只是想反正。
號你看到任何排序是查詢優化戰略的一個假象。關係理論禁止有任何數據集的任何隱含的順序。
你甚至不能指望下一次對同一個查詢進行相同的排序,因爲優化器策略取決於上下文和d這可能會改變。
即使你看到(通過PK訂購)不是由標準保證的。你應該總是指定要秩序的行爲要檢索的東西。
但是,只有在重要的情況下,這可能不是真的。 – dkretz 2011-04-11 23:20:20
@le dorfier - 這是正確的,如果你不關心訂單,那麼沒有理由使用ORDER BY子句。 – 2011-04-11 23:22:19
有趣的是,關係理論確實指出'一個集合是唯一的,非重複項目的無序集合。 – 2011-04-11 23:40:37