#navi(../)
* PostgreSQLでSELECTの出力に連番を付ける方法 [#fa94246d]
SELECTした結果に対して先頭などに連番を付けたい場合は、以下のようにSQLを発行することにより実現できます。

#contents
#htmlinsertpcsp(db-top.html,db-sp.html)

* 関連資料 [#f14ff098]
-[[MySQLでSELECTの出力に連番を付ける方法>MySQL/SELECTの出力に連番を付ける方法]]

* SELECTの結果に連番を付ける [#g68f5da0]
以下にPostgreSQLでSELECT結果に連番をつける方法を記します。~
尚、Window関数を使用するのでバージョン8.4以上のバージョンで以下の例が実行可能です。

+ テスト用のテーブルを作成
 db1=# create table t1 (a int, b int, c int);
 CREATE TABLE
#br
+ 3行データをインサート
 db1=# insert into t1 values(1,10,100),(2,20,200),(3,30,300);
 INSERT 0 3
#br
+ 以下のSQLを実行しSELECT結果に連番を付与しています
 db1=# select row_number() over(), * from t1;
  row_number | a | b  |  c  
 ------------+---+----+-----
           1 | 1 | 10 | 100
           2 | 2 | 20 | 200
           3 | 3 | 30 | 300
 (3 行)
#br
+ 以下のSQLでrow_numberを別名noにしています
 db1=# select row_number() over() as no, * from t1;
  no | a | b  |  c  
 ----+---+----+-----
   1 | 1 | 10 | 100
   2 | 2 | 20 | 200
   3 | 3 | 30 | 300
 (3 行)

#htmlinsertpcsp(db-btm.html,db-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS