1、ROW_NUMBER() OVER(ORDER BY)
ROW_NUMBER() OVER(ORDER BY 字段1 DESC)是先把字段1降序,再为降序以后的每条记录返回一个序号。
【实例】使用ROW_NUMBER() OVER(ORDER BY)按学生成绩排序,并为每条排序后的记录返回一个序号。
SELECT ROW_NUMBER() OVER(ORDER BY Score DESC) AS Row_Index,*
FROM StuScore
2、ROW_NUMBER() OVER(PARTITION BY)
ROW_NUMBER() OVER(PARTITION BY 字段1 ORDER BY 字段2 DESC)表示根据字段1分组,在分组内部根据字段2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)。
【实例】使用ROW_NUMBER() OVER(PARTITION BY)按学生编号分组且按学生成绩排序,再为每条排序后的记录返回一个序号。
SELECT ROW_NUMBER() OVER(PARTITION BY StuID ORDER BY Score DESC) AS Row_Index,*
FROM StuScore