PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment évaluer l'expression dans l'instruction select dans Postgres

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.