天天看點

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