sql >> Database >  >> RDS >> PostgreSQL

Postgres - Hoe converteer je een rij met een int-bereik naar tussenliggende rijen van individuele waarden uit dat bereik?

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.




  1. Nodejs MySQL-verbindingsquery retourwaarde naar functieaanroep

  2. Hibernate mapping MySQL DateTime

  3. Hulp bij PHP- en SQL-hashing:wat doe ik verkeerd?

  4. bel extern script met mySQL-trigger WHITOUT sys_exec op ubuntu ARMHF