201012020912[SQL] 利用 Row_number 取出資料表中第X行~第Y行資料

在資料庫裡想要取出前10筆,我想大家都會用 SELECT top 10 * FROM Dept ,最後10筆當然也沒問題,那取出前10%呢? 取出第50~60筆呢?

取出前10%,很簡單加個 percent 就可以了(不可以用%)

 

SELECT top 10 PERCENT * FROM Dept

 

那取出特定的一段資料呢?

 

WITH dept_x AS
(
SELECT *,ROW_NUMBER() OVER (ORDER BY ModifiedDate) AS 'RowNumber' FROM Dept
)
SELECT  FROM dept_x WHERE RowNumber BETWEEN 8 AND 12;

如此他就會以 ModifiedDate 欄位來排序,並產出對應的順序代號,然後你就可以用 RowNumber 來取出你想要的範圍囉!

下面的例子可以清楚的看到,以不同欄位做排序所得到的不同結果。



~ End

 

 

回應
Google Search
Google
平均分數:0 顆星
投票人數:0
我要評分:
Google