必要なのは一種の停止条件です。私の知る限り、SQLにはそのようなものはなく、少なくともPostgreSQLの方言です。
PL / PgSQLプロシージャを使用してカーソルから行を読み取り、停止条件が満たされるまでそれらを返すことができます。超高速ではありませんが、大丈夫です。単なるFOR
IF expression THEN exit; ELSE return next; END IF;
。 FOR
の場合、PL / PgSQLは内部でカーソルを使用するため、明示的なカーソルは必要ありません。 クエリをループします。
もう1つのオプションは、カーソルを作成し、アプリケーションでカーソルから行のチャンクを読み取り、停止条件が満たされたときに最後のチャンクの一部を破棄することです。
いずれにせよ、カーソルはあなたが望むものになるでしょう。
ちなみに、stop式をPostgreSQLに実装するのは実際にはそれほど難しいことではありません。新しいエグゼキュータノードタイプを実装する必要がありますが、新しいCustomScanサポートにより、拡張機能でそれを実行するのが実用的になります。次に、式を評価して、行のフェッチを続行するかどうかを決定します。