vous pouvez écrire une fonction SQL qui le fait pour vous et utiliser par ex. ceux fournis avec postgres-utils :
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
Mais bien sûr, cela peut être lent, non sécurisé, vous pouvez utiliser des vues matérialisées pour le mettre en cache plus facilement, etc. - voir la documentation ici.