PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come valutare l'espressione nell'istruzione select in Postgres

puoi scrivere una funzione SQL che lo faccia per te e usare ad es. quelli forniti con 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

Ma ovviamente potrebbe essere lento, insicuro, potresti usare viste materializzate per memorizzarlo nella cache più facilmente, ecc. - vedi docu lì.