SQL語句中ROWNUM和ORDER BY一起使用時的注意事項

無意中發現一個問題,這個問題的起因是一條SQL語句,語句如下:

SELECT *
  FROM fs_message_info  WHERE   ROWNUM <= '1000'
   order by SENDTIME desc


當查詢到的數據量不超過1000條的時候這條SQL是沒有問題的,但是當查詢的數據量特別大的時候,這樣寫SQL就會導致,查詢到的數據信息不完整。ROWNUM和ORDER BY一起用時比較嚴謹的寫法應該是:

SELECT * FROM (SELECT *
  FROM fs_message_info   
   order by SENDTIME desc) where ROWNUM <= '1000'

 

先排序,然後再取排序後的前1000條數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章