sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo puedo seleccionar filas adyacentes a una fila arbitraria (en sql o postgresql)?

Hay muchas formas de hacerlo si ejecuta dos consultas con un lenguaje de programación, pero aquí hay una forma de hacerlo en una consulta 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

Esto devolvería las 5 filas de arriba, la fila de destino y las 5 filas de abajo.