ROW_NUMBER関数


結果レコードセットに連番を付与する関数。
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