आप जो चाहते हैं वह एक प्रकार की रोक-स्थिति है। जहाँ तक मेरी जानकारी है, SQL में ऐसी कोई चीज़ नहीं है, कम से कम PostgreSQL की बोली।
आप क्या कर सकते हैं एक कर्सर से पंक्तियों को पढ़ने के लिए पीएल/पीजीएसक्यूएल प्रक्रिया का उपयोग करें और स्टॉप की स्थिति पूरी होने तक उन्हें वापस कर दें। यह बहुत तेज़ नहीं होगा, लेकिन यह ठीक रहेगा। यह सिर्फ एक FOR
है एक क्वेरी पर लूप IF expression THEN exit; ELSE return next; END IF;
. किसी स्पष्ट कर्सर की आवश्यकता नहीं है क्योंकि PL/PgSQL आंतरिक रूप से एक का उपयोग करेगा यदि आप FOR
एक प्रश्न पर लूप।
एक अन्य विकल्प यह है कि एक कर्सर बनाया जाए और एप्लिकेशन में उसमें से पंक्तियों का हिस्सा पढ़ा जाए, फिर स्टॉप की शर्त पूरी होने के बाद अंतिम चंक के हिस्से को छोड़ दें।
किसी भी तरह, एक कर्सर वही होगा जो आप चाहते हैं।
एक स्टॉप एक्सप्रेशन वास्तव में पोस्टग्रेएसक्यूएल में लागू करना बहुत कठिन नहीं होगा। आपको एक नया निष्पादक नोड प्रकार लागू करना होगा, लेकिन नया कस्टमस्कैन समर्थन विस्तार में ऐसा करने के लिए व्यावहारिक बना देगा। फिर आप केवल यह तय करने के लिए एक व्यंजक का मूल्यांकन करेंगे कि पंक्तियों को लाना जारी रखना है या नहीं।