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

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

Това, което искате, е нещо като стоп-условие. Доколкото ми е известно, няма такова нещо в SQL, поне в диалекта на PostgreSQL.

Това, което можете да направите, е да използвате PL/PgSQL процедура, за да прочетете редове от курсор и да ги върнете, докато не бъде изпълнено условието за спиране. Няма да е супер бързо, но ще е наред. Това е просто FOR цикъл върху заявка с израз IF expression THEN exit; ELSE return next; END IF; . Не се изисква явен курсор, защото PL/PgSQL ще използва такъв вътрешно, ако FOR преминете през заявка.

Друг вариант е да създадете курсор и да прочетете части от редове от него в приложението, след което да изхвърлите част от последната част, след като условието за спиране е изпълнено.

И в двата случая курсорът ще бъде това, което искате.

Между другото, изразът за спиране всъщност не би бил твърде труден за прилагане в PostgreSQL. Ще трябва да внедрите нов тип изпълнителен възел, но новата поддръжка на CustomScan би направила това практично да се направи в разширение. След това просто ще оцените израз, за ​​да решите дали да продължите извличането на редове, или не.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. C# и PostgreSQL

  2. Как да създавате и изтривате бази данни и таблици в PostgreSQL

  3. Django/Python:Актуализирайте връзката, за да посочите настройките.AUTH_USER_MODEL

  4. Сравняване на опциите за облачна база данни за PostgreSQL

  5. SQL заявка, използваща клауза WHERE IN