sql >> Databasteknik >  >> RDS >> Oracle

Välj rader tills villkoret uppfylls

Använd en underfråga för att ta reda på vid vilken tidpunkt du ska stoppa, och returnera sedan alla rader från din startpunkt till den beräknade stopppunkten.

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

Observera att detta förutsätter att den sista posten alltid är ett 'F'. Du kan hantera den sista posten som ett 'T' med 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. Hur infogar jag javascript i mysql-databasen?

  2. nodejs mysql multipel där query's

  3. En flexibel främmande nyckel

  4. Phpstorm Database:java.sql.SQLEUndantag:Kommunikationslänkfel