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
回應