ROW_NUMBER()函數 ROW_NUMBER()要配合 OVER()一起使用,生成的序號可以是升序的,也可以是降序的。 首先使用 SQL 語句創建一個表,然後添加一些數據,SQL 語句如下 /* CREATE TABLE Student ( Id int primary key not null, SName nvarchar(5), SAge int ) INSERT INTO Student(Id,SName,SAge) VALUES(1,'Ted',23),(2,'Sam',18),(3,'Jack',29),(4,'Mike',21) GO */ select * from Student --用ROW_NUMBER來針對年齡由小到大編列序號 SELECT (ROW_NUMBER() OVER( ORDER BY S.SAge ASC )) AS 序號 ,Id,SName AS 姓名 ,SAge AS 年齡 FROM Student AS S 分組排序 在 ROW_NUMBER()函數的 OVER()中,可以使用 PARTITION BY 關鍵字進行分組排序。 首先是根據第一個欄位分組,分組後再在組內根據第二個欄位再排序並加上序號。 PARTITION BY 關鍵字的基本語法如下: ROW_NUMBER() OVER(PARTITION BY 欄位1 ORDER BY 欄位2) 將上面的 Student 表中再添加一個城市的字段 City,新建一個Student2的表。 ROW_NUMBER,RANK,DENSE_RANK各自比較 /* drop table Student2 CREATE TABLE Student2 ( Id int primary key not null, SName nvarchar(50), SAge int, City nvarchar(10) ); INSERT INTO Student2(Id, SName, SAge, City) VALUES (1, 'Ted', 23, '台北'), (2, 'Sam...