行番号を振るには「ROW_NUMBER」を使用します。
ROW_NUMBER の使い方
ORDER BY で番号を振る順番を指定します。通常のORDER BYと同様に複数の項目を指定したり、ASC/DESCで昇順・降順の指定も可能です。-
最もシンプルなパターン
SELECT ROW_NUMBER() OVER(ORDER BY *ソートする項目名*) FROM テーブル名
-
降順で番号を振る
SELECT ROW_NUMBER() OVER(ORDER BY *ソートする項目名* DESC) FROM テーブル名
-
複数の項目を条件に番号を振る
SELECT ROW_NUMBER() OVER(ORDER BY *ソートする項目名1* DESC, *ソートする項目名2* ASC) FROM テーブル名
使用例
SELECT ROW_NUMBER() OVER(ORDER BY object_id) num
,name
,object_id
FROM sys.objects
結果例
num | name | object_id |
---|---|---|
1 | sysrscols | 3 |
2 | sysrowsets | 5 |
3 | sysallocunits | 7 |
4 | sysfiles1 | 8 |
5 | syspriorities | 17 |
6 | sysfgfrag | 19 |
検証環境
- Microsoft SQL Server Express Edition (64-bit) プラットフォーム:NT x64 バージョン:10.0.2531.0
- Microsoft Windows 7 Professional Service Pack 1 (Microsoft Windows NT 6.1 (7601))