⑴ sql server如果不使用order by子句,查詢返回的結果是按照什麼排序的
如果不指定order by 子句,則查詢結果的順序不確定。並一定是按主鍵。查詢優化器會根據實際情況生成執行計劃。排序需要成本的,而且成本可能不小。如果沒有明確指定order by子句,則查詢結果的順序不確定。
如果希望按某種順序返回結果,必須明確指定order by子句。
⑵ sql中沒有order by,是否存在默認排序
oracle資料庫是沒有默認排序的 要排序必須加上order by 因為oracle是按塊進行讀取數據的 如果數據按順序存儲,則可能使讀取出來的數據是按順序的,給用戶誤解為默認排序 oracle沒有進行任何排序操作,rowid表示的是數據存放的數據塊內部地址,如果沒有要求排序,oracle會順序的從數據塊中讀取符合條件的數據返回到客戶端,不過看起來好像是按照rowid排序似的 如果數據量足夠大,即使相同的語句,都有可能不同的結果。 一般而言表是堆表所以是無序的 他是按照也即物理存放順序來讀取的
⑶ sql查詢中,order by 排序失效(逗號後面的換了其他任何都沒用)
優先handerdate 排序 ,handerdate排序之後才會進行你得第二個欄位排序 ,第二個欄位排序是在你第一次排序完的基礎上進行的, 所以你這個排序應該是對的
⑷ sql 數據量很大 有where 和order by,不加order by 速度很快,加了就很慢,為什麼
order by是用來排序的,如果剛開始的資料庫沒有按照你想要的順序排列的話,用order by的時候就會使得資料庫中的數據重新排列,這樣執行起來就慢了,況且表中的記錄也蠻多的,如果記錄較少的話,就沒什麼快慢之分了
查詢的語法 order by 必須在最後
建議 添加索引