搜尋此網誌

2016年1月4日 星期一

為查詢的結果加上序號(ROW_NUMBER,RANK,OVER)

在MS SQL2005以後,增加了一些幫查詢結果加上序號的函數
以下的範例使用北風(NorthWind)資料庫
介紹如下:
1.ROW_NUMBER
依照指定的欄位排序,並逐筆加上順號的方式
例如:

SELECT 
 ROW_NUMBER() OVER(ORDER BY CustomerID) AS ROWID
 ,*
FROM Orders
rn01

2.RANK
依照排序的欄位,相同的資料相同排名,下一個不同會【跳脫】

SELECT 
 RANK() OVER(ORDER BY CustomerID) AS ROWID
 ,*
FROM Orders
rn02
3.DENSE_RANK
依照排序的欄位,相同的資料相同排名,下一個不同會【不跳脫】


SELECT 
 --ROW_NUMBER() OVER(ORDER BY CustomerID) AS ROWID
 --RANK() OVER(ORDER BY CustomerID) AS ROWID
 DENSE_RANK() OVER(ORDER BY CustomerID) AS ROWID
 ,*
FROM Orders
rn03

沒有留言:

張貼留言