我想要搜尋第X筆~第X筆,關於指定筆數的搜尋
於我而言很困擾的一個問題,像MYSQL就有LIMIT 5,10 這樣的語法來支持搜尋第5筆到第10筆的資料。
MSSQL沒有這麼好康的事,為了這個,上網找了一推資料,但多半是先反排再取TOP這樣的方式,極耗效能阿!!!
最後,終於找到我的真愛- ROW_NUMBER() 函數,個人覺得這是拯救蒼生最快的函數之一了XD!
以下為範例,假設要搜尋product資料表中第5-11筆的資料 :
WITH product_list AS
(SELECT *,ROW_NUMBER() OVER(ORDER BY num desc) AS new_num FROM product)
SELECT * FROM product_list WHERE new_num BETWEEN 5 AND 11
以上做個筆記,如果各位大大有更好的寫法,麻煩跟小弟分享分享阿~
|