行番号を振るには「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))