sql >> Database teknologi >  >> RDS >> PostgreSQL

Vælg indtil række matcher i postgresql?

Det, du ønsker, er en slags stop-tilstand. Så vidt jeg ved er der ikke sådan noget i SQL, i hvert fald PostgreSQL's dialekt.

Hvad du kan gøre er at bruge en PL/PgSQL-procedure til at læse rækker fra en markør og returnere dem, indtil stopbetingelsen er opfyldt. Det vil ikke være super hurtigt, men det vil være i orden. Det er bare en FOR loop over en forespørgsel med et IF expression THEN exit; ELSE return next; END IF; . Der kræves ingen eksplicit markør, fordi PL/PgSQL vil bruge en internt, hvis du FOR sløjfe over en forespørgsel.

En anden mulighed er at oprette en markør og læse bidder af rækker fra den i applikationen og derefter kassere en del af den sidste chunk, når stopbetingelsen er opfyldt.

Uanset hvad, vil en markør være, hvad du vil have.

Et stop-udtryk ville i øvrigt ikke være for svært at implementere i PostgreSQL. Du bliver nødt til at implementere en ny executor node type, men den nye CustomScan support ville gøre det praktisk at gøre i en udvidelse. Så ville du bare evaluere et udtryk for at beslutte, om du vil fortsætte med at hente rækker eller ej.



  1. Oracle SQL Find de 5 laveste lønninger

  2. hvordan man uploader flere billeder til mappe ved hjælp af jsp og servlet

  3. JPA Nul eller nul primær nøgle fundet i arbejdsenhed klon

  4. SQL INSERT INTO fra flere tabeller