Jika fungsi mengembalikan satu record maka:
WITH cte AS (SELECT 1 a, 2 b)
SELECT my_function(a, b) FROM cte;
akan bekerja. Namun, jika fungsinya adalah SRF (Set-Returning-Function), maka Anda perlu menggunakan LATERAL, untuk memberi tahu database bahwa Anda ingin memasukkan hasil tabel sebelumnya dalam pernyataan JOIN ke fungsi nanti di IKUTI. Ini dilakukan seperti ini:
WITH cte AS (SELECT 1 a, 2 b)
SELECT * FROM cte, LATERAL my_function(a, b);
LATERAL akan menyebabkan PostgreSQL mengambil setiap baris dari CTE dan menjalankan "my_function" dengan nilai dari baris tersebut, mengembalikan hasil fungsi tersebut ke pernyataan SELECT secara keseluruhan.