发布网友 发布时间:2022-04-23 02:41
共2个回答
热心网友 时间:2022-04-08 20:44
row_number() over(order by xxx)只是row_number函数的语法规则,如果当初定义成 row_number(order by xxx)也无不可),over在这里我估计也就是让它看起来类似自然语言,就是在order by xxx之后进行计算行数
热心网友 时间:2022-04-08 22:02
--用ROW_NUMBER函数,你就可以获得添加在你的结果集的增加列中的行序号。为了获得行序号,你只要简单的将ROW_NUMBER函数作为一列添加进你的SELECT语句中。你还必须添加OVER语句以便告诉SQL Server你希望怎样添加行序号
DECLARE @t TABLE
(id INT ,
num INT)
INSERT INTO @t
SELECT 1,2 UNION ALL
SELECT 2,3 UNION ALL
SELECT 3,1 UNION ALL
SELECT 4,4 UNION ALL
SELECT 5,4
--order 是必填项 用于排序
SELECT *,ROW_NUMBER()OVER (ORDER BY num ASC) 排序
FROM @t
--先按照 PARTITION分类 在安装 order 排序
SELECT *,ROW_NUMBER()OVER (PARTITION BY num ORDER BY id ASC) 排序
FROM @t