語法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
例1:SELECT ROW_NUMBER() OVER(ORDER BY OrderPrice) rownum,OrderPrice FROM [MyTest].[dbo].[Orders]
簡單的說row_number()從1開始,爲每一條分組記錄返回一個數字,這裏的ROW_NUMBER() OVER (ORDER BY OrderPrice DESC)
是先把列OrderPrice降序,再爲降序以後的沒條OrderPrice記錄返回一個序號。
例2:SELECT ROW_NUMBER() OVER(PARTITION BY Customer ORDER BY OrderPrice) rownum,OrderPrice,Customer FROM [MyTest].[dbo].[Orders]
row_number() OVER (PARTITION BY Customer ORDER BY OrderPrice) 表示根據Customer 分組,在分組內部根據 OrderPrice排序,而此函數計算的值就表示每組內部排序後的順序編號(組內連續的唯一的)