Verwenden Sie generate_series()
:
select gs.i, t.*
from t cross join lateral
generate_series(start_i, end_i, 1) gs(i);
Genau genommen der lateral
wird nicht benötigt. Aber es erklärt, worum es geht. Ich sollte auch beachten, dass Sie auch Folgendes tun können:
select generate_series(start_i, end_i) as i, t.*
from t;
Allerdings generate_series()
wirkt sich auf die Anzahl der Zeilen in der Abfrage aus. Ich fühle mich unwohl mit solchen Effekten im SELECT
Klausel.