je kunt een SQL-functie schrijven die dit voor je doet en b.v. degene die bij postgres-utils worden geleverd:
select
c.name as cust_name,
p.name as prod_name,
p.cost as prod_cost,
eval(
'select '||c.price_expression||' from product where id=:pid',
'{"{cost}",:pid}',
array[ p.cost, p.id ]
) as cust_cost
from product p, customer c
Maar het kan natuurlijk traag en onveilig zijn, je zou gematerialiseerde weergaven kunnen gebruiken om het gemakkelijker in de cache te plaatsen, enz. - zie docu daar.