Apa yang Anda inginkan adalah semacam kondisi berhenti. Sejauh yang saya ketahui tidak ada hal seperti itu di SQL, setidaknya dialek PostgreSQL.
Apa yang dapat Anda lakukan adalah menggunakan prosedur PL/PgSQL untuk membaca baris dari kursor dan mengembalikannya hingga kondisi berhenti terpenuhi. Ini tidak akan super cepat, tapi itu akan baik-baik saja. Ini hanya FOR
mengulang kueri dengan ekspresi IF expression THEN exit; ELSE return next; END IF;
. Tidak diperlukan kursor eksplisit karena PL/PgSQL akan menggunakannya secara internal jika Anda FOR
mengulang kueri.
Opsi lainnya adalah membuat kursor dan membaca potongan baris darinya dalam aplikasi, lalu membuang bagian dari potongan terakhir setelah kondisi berhenti terpenuhi.
Either way, kursor akan menjadi apa yang Anda inginkan.
Omong-omong, ekspresi stop sebenarnya tidak terlalu sulit untuk diterapkan di PostgreSQL. Anda harus menerapkan tipe simpul pelaksana baru, tetapi dukungan CustomScan baru akan membuatnya praktis untuk dilakukan dalam ekstensi. Kemudian Anda tinggal mengevaluasi ekspresi untuk memutuskan apakah akan melanjutkan pengambilan baris atau tidak.