Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Selecionar linhas até que a condição seja atendida


Use uma subconsulta para descobrir em que ponto você deve parar e, em seguida, retorne todas as linhas do ponto inicial até o ponto de parada calculado.
SELECT
  *
FROM
  yourTable
WHERE
      id >= 4
  AND id <= (SELECT MIN(id) FROM yourTable WHERE b = 'F' AND id >= 4)

Observe que isso pressupõe que o último registro é sempre um 'F'. Você pode lidar com o último registro sendo um 'T' usando um COALESCE .
SELECT
  *
FROM
  yourTable
WHERE
      id >= 4
  AND id <= COALESCE(
              (SELECT MIN(id) FROM yourTable WHERE b = 'F' AND id >= 4),
              (SELECT MAX(id) FROM yourTable                          )
            )