Als de functie één record retourneert, dan:
WITH cte AS (SELECT 1 a, 2 b)
SELECT my_function(a, b) FROM cte;
zal werken. Als de functie echter een SRF (Set-Returning-Function) is, moet u LATERAL gebruiken om de database te laten weten dat u de resultaten van de voorgaande tabellen in de JOIN-instructie naar de functies later in de MEEDOEN. Dit wordt als volgt bereikt:
WITH cte AS (SELECT 1 a, 2 b)
SELECT * FROM cte, LATERAL my_function(a, b);
De LATERAL zorgt ervoor dat PostgreSQL elke rij uit de CTE haalt en "my_function" uitvoert met de waarden uit die rij, waarbij de resultaten van die functie worden geretourneerd naar de algemene SELECT-instructie.