結果レコードセットに連番を付与する関数。
PARTITION BY句を指定することにより、値がブレイクした場合に1から振りなおすような設定も可能。
以下使用例
select *, ROW_NUMBER() OVER(ORDER BY COL2) as 連番 From wk_hoge
↓結果
COL1 COL2 VAL 連番 ----------------------------------------------------- 1 11 100 1 2 11 100 2 5 11 100 3 6 22 100 4 3 22 100 5 4 33 100 6
PARTITION BYを使用した例
select *, ROW_NUMBER() OVER(PARTITION BY COL2 ORDER BY COL2) as 連番 From wk_hoge
↓結果
COL1 COL2 VAL 連番 ----------------------------------------------------- 1 11 100 1 2 11 100 2 5 11 100 3 6 22 100 1 3 22 100 2 4 33 100 1
なお、ROW_NUMBER関数はOracleでもサポートされている(10gで動作検証済み)
動作確認環境:SQL Server 2008 Enterprise Edition