読者です 読者をやめる 読者になる 読者になる

ほげほげ(仮)

仮死状態

ROW_NUMBER(SQL Server 2005)

DB

SQL Server 2005 からROW_NUMBERが使えるようになってるから

簡単にまとめておこう

次のようなテーブルがある場合
【SAMPLE】

CODESUB_CODENAME
0011AAA
0012BBB
0013CCC
0021DDD
0022EEE

SELECT
  ROW_NUMBER() OVER (ORDER BY CODE, SUB_CODE) AS NUM,
  CODE,
  SUB_CODE,
  NAME
FROM
  SAMPLE

このSQLを実行すると次のような結果になる

NUMCODESUB_CODENAME
10011AAA
20012BBB
30013CCC
40021DDD
50022EEE

更にCODEごとに連番を振りたい場合は

SELECT
  ROW_NUMBER() OVER (PARTITION BY CODE ORDER BY CODE, SUB_CODE) AS NUM,
  CODE,
  SUB_CODE,
  NAME
FROM
  SAMPLE

これを実行すると次の結果になる

NUMCODESUB_CODENAME
10011AAA
20012BBB
30013CCC
10021DDD
20022EEE

SQL Server 2000 では使えないから要注意