
昨日まで書いた
↓ 最も基本的な例。初め
-- 最初だけ実行 \set n 0 -- 以下、繰り返し \set n :n + 1 select :n; +----------+ | ?column? | +----------+ | 1 | +----------+ (1 row) \set n :n + 1 select :n; +----------+ | ?column? | +----------+ | 2 | +----------+ (1 row) \set n :n + 1 select :n; +----------+ | ?column? | +----------+ | 3 | +----------+ (1 row) (...)

数値だけでなく、日付にも使えました。↓
-- 最初だけ実行 \set n 0 -- 以下繰り返し \set n :n + 1 select cast('2016-2-' || :n as date); +------------+ | date | +------------+ | 2016-02-01 | +------------+ (1 row) \set n :n + 1 select cast('2016-2-' || :n as date); +------------+ | date | +------------+ | 2016-02-02 | +------------+ (1 row) \set n :n + 1 select cast('2016-2-' || :n as date); +------------+ | date | +------------+ | 2016-02-03 | +------------+ (1 row) (...)

↓ 時間間隔(interval
-- 最初だけ実行 \set n 0 -- 以下繰り返し \set n :n + 1 select '2016-1-31' :: date + concat(:n, 'day') :: interval; +---------------------+ | ?column? | +---------------------+ | 2016-02-01 00:00:00 | +---------------------+ (1 row) \set n :n + 1 select '2016-1-31' :: date + concat(:n, 'day') :: interval; +---------------------+ | ?column? | +---------------------+ | 2016-02-02 00:00:00 | +---------------------+ (1 row) \set n :n + 1 select '2016-1-31' :: date + concat(:n, 'day') :: interval; +---------------------+ | ?column? | +---------------------+ | 2016-02-03 00:00:00 | +---------------------+ (1 row) (...)

なお
\set n :n + 1 \set n :n + 1 \set n :n + 1 \set n :n + 1 \set n :n + 1 \set n :n + 1 \set n :n + 1 \echo :n 0+1+1+1+1+1+1+1+1+1+1 select '' || :n; +----------+ | ?column? | +----------+ | 10 | +----------+ (1 row)
