適材適所

WindowsやPowerShellやネットワーク、IBMなどのシステム系の話など気になったことも載せているブログです。

【AS400,IBMi】 Db2 for iのSQLで連番を生成する

Db2 for iのSQLで連番を生成するときの備忘録です。

WITH句の再帰クエリを使います。

Db2 for iのSQLで連番を生成する

次のように書くことで1~100までの連番を生成することができます。

 
WITH DUMMY(MAX_COUNT) AS (SELECT 1 FROM SYSIBM.SYSDUMMY1                 
  UNION ALL SELECT MAX_COUNT + 1 FROM DUMMY WHERE MAX_COUNT <100)             

SELECT MAX_COUNT FROM DUMMY                 

MAX_COUNT <100 の100を修正することで任意の連番を作成することができます。

AS400(IBMi)用のDb2ではSYSIBM.SYSDUMMY1というダミーテーブルを指定します。

SYSIBM.SYSDUMMY1については↓
【Db2 AS400】SYSIBM.SYSDUMMY1とは? - 適材適所

ちなみにDUMMYというテーブル名は私が勝手につけた名前なので

SQL命名規則に則っていれば任意の名前をつけることができます。

とっても簡単ですが、備忘録として。

参考

DB2 for i SQL: 再帰的照会の使用