Oracle
 sql >> Base de données >  >> RDS >> Oracle

Sélectionner des lignes jusqu'à ce que la condition soit remplie

Utilisez une sous-requête pour savoir à quel point vous devez vous arrêter, puis renvoyez toutes les lignes depuis votre point de départ jusqu'au point d'arrêt calculé.

SELECT
  *
FROM
  yourTable
WHERE
      id >= 4
  AND id <= (SELECT MIN(id) FROM yourTable WHERE b = 'F' AND id >= 4)

Notez que cela suppose que le dernier enregistrement est toujours un 'F'. Vous pouvez traiter le dernier enregistrement comme étant un 'T' en utilisant un 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                          )
            )