यदि फ़ंक्शन एकल रिकॉर्ड लौटाता है तो:
WITH cte AS (SELECT 1 a, 2 b)
SELECT my_function(a, b) FROM cte;
काम करेगा। हालाँकि, यदि फ़ंक्शन एक SRF (सेट-रिटर्निंग-फ़ंक्शन) है, तो आपको डेटाबेस को यह बताने के लिए LATERAL का उपयोग करने की आवश्यकता है कि आप JOIN स्टेटमेंट में पूर्व तालिकाओं के परिणामों को बाद में फ़ंक्शन में फीड करना चाहते हैं। जोड़ना। इसे इस प्रकार पूरा किया जाता है:
WITH cte AS (SELECT 1 a, 2 b)
SELECT * FROM cte, LATERAL my_function(a, b);
LATERAL PostgreSQL को CTE से प्रत्येक पंक्ति लेने और उस पंक्ति के मानों के साथ "my_function" चलाने का कारण बनेगा, उस फ़ंक्शन के परिणामों को समग्र SELECT स्टेटमेंट पर लौटाएगा।