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

Vælg rækker, indtil betingelsen er opfyldt

Brug en underforespørgsel til at finde ud af, på hvilket tidspunkt du skal stoppe, og returner derefter hele rækken fra dit startpunkt til det beregnede stoppunkt.

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

Bemærk, dette forudsætter, at den sidste post altid er et 'F'. Du kan håndtere den sidste post som et 'T' ved hjælp af en 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                          )
            )



  1. Hvordan man proaktivt indsamler SQL Server-indekser Fragmenteringsoplysninger

  2. MySQL:vælg det første element i en kommasepareret liste

  3. Data til stede i rækker til kolonner

  4. Sådan forespørges GRUPPER EFTER måned om et år