Oracle
 sql >> база данни >  >> RDS >> Oracle

Изберете редове, докато условието бъде изпълнено

Използвайте подзаявка, за да разберете в коя точка трябва да спрете, след което върнете целия ред от вашата начална точка до изчислената точка на спиране.

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

Забележете, това предполага, че последният запис винаги е "F". Можете да се справите с това, че последният запис е "T", като използвате 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Внедряване на изискване „И двете, или или, но не нула“ в база данни

  2. Oracle:Има ли начин да получите скорошни грешки в синтаксиса на SQL?

  3. Oracle:Извличане от TZNAME Възможно ли е?

  4. Ексклузивно заключване на таблица (четене) на Oracle 10g?

  5. Java заявката с DB Link не затваря Db Link връзката