Gebruik generate_series()
:
select gs.i, t.*
from t cross join lateral
generate_series(start_i, end_i, 1) gs(i);
Strikt genomen, de lateral
is niet nodig. Maar het verklaart wel wat er aan de hand is. Ik moet er ook rekening mee houden dat je ook het volgende kunt doen:
select generate_series(start_i, end_i) as i, t.*
from t;
Echter, generate_series()
heeft invloed op het aantal rijen in de query. Ik voel me ongemakkelijk bij het hebben van dergelijke effecten in de SELECT
clausule.