天天看点

ROW_NUMBER (Transact-SQL) ROW_NUMBER (Transact-SQL)

sql server 2014

<a target="_blank">其他版本</a>

ROW_NUMBER (Transact-SQL) ROW_NUMBER (Transact-SQL)

返回结果集分区内行的序列号,每个分区的第一行从 1 开始。

ROW_NUMBER (Transact-SQL) ROW_NUMBER (Transact-SQL)

<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