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