WITH 句を複数記述する場合は、カンマで区切って WITH 宣言を書かずに次のWITH句を
記述する。
PostgreSQL の例。
1から8までの数値IDのテーブルに、乱数発生のテーブルのIDが奇数で外部結合させる。
WITH RECURSIVE generate1(id) AS ( SELECT 1 UNION ALL SELECT id + 1 FROM generate1 WHERE id + 1 <= 8 ), generate2(id, rnum) AS ( SELECT 1, ROUND((RANDOM() * (1 - 100) )::NUMERIC, 0) + 100 UNION ALL SELECT id + 2, ROUND((RANDOM() * (1 - 100) )::NUMERIC, 0) + 100 FROM generate2 WHERE id + 2 <= 8 ) SELECT a.id, b.rnum FROM generate1 a LEFT JOIN generate2 b ON a.id = b.id
実行結果
