PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come posso selezionare righe adiacenti su una riga arbitraria (in sql o postgresql)?

Ci sono molti modi per farlo se esegui due query con un linguaggio di programmazione, ma ecco un modo per farlo in una query SQL:

(SELECT * FROM table WHERE id >= 34 AND active = 1 ORDER BY id ASC LIMIT 6)
UNION
(SELECT * FROM table WHERE id < 34 AND active = 1 ORDER BY id DESC LIMIT 5)
ORDER BY id ASC

Ciò restituirebbe le 5 righe sopra, la riga di destinazione e le 5 righe sotto.