sql server 2014
<a target="_blank">其他版本</a>
返回结果集分区内行的序列号,每个分区的第一行从 1 开始。
<a target="_blank">语法</a>
<a target="_blank"></a>
<a target="_blank">参数</a>
<dl></dl>
<dt>partition by value_expression</dt>
<dd></dd>
<dt>order_by_clause</dt>
<a target="_blank">返回类型</a>
bigint
<a target="_blank">一般备注</a>
除非以下条件成立,否则不保证在每次执行时,使用 row_number() 的查询所返回行的顺序完全相同。
分区列的值是唯一的。
order by 列的值是唯一的。
分区列和 order by 列的值的组合是唯一的。
<a target="_blank">示例</a>
以下示例根据销售人员年初至今的销售额,计算 adventure works cycles 中销售人员的行号。
下面是结果集:
下面的示例按 orderdate 的顺序计算 salesorderheader 表中所有行的行号,并只返回行 50 到 60(含)。
以下示例使用 partition by 参数按列 territoryname 对结果集进行分区。 在 over 子句中指定的 order
by 子句按列 salesytd 对每个分区中的行进行排序。 select 语句中的order
by 按 territoryname 子句对整个查询结果集进行排序。
<a target="_blank">请参阅</a>
<a target="_blank" href="https://msdn.microsoft.com/zh-cn/library/ms176102.aspx">rank (transact-sql)</a>
<a target="_blank" href="https://msdn.microsoft.com/zh-cn/library/ms173825.aspx">dense_rank (transact-sql)</a>
<a target="_blank" href="https://msdn.microsoft.com/zh-cn/library/ms175126.aspx">ntile (transact-sql)</a>
原文地址:https://msdn.microsoft.com/zh-cn/library/ms186734.aspx