Oracle
 sql >> Database >  >> RDS >> Oracle

Seleziona le righe finché la condizione non è soddisfatta

Usa una sottoquery per scoprire a che punto dovresti fermarti, quindi riporta tutte le righe dal punto di partenza al punto di stop calcolato.

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

Nota, questo presuppone che l'ultimo record sia sempre una "F". Puoi gestire l'ultimo record che è una "T" usando 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                          )
            )