PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

So werten Sie den Ausdruck in der Select-Anweisung in Postgres aus

Sie können eine SQL-Funktion schreiben, die dies für Sie erledigt, und z. die mit postgres-utils bereitgestellten:

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

Aber natürlich kann es langsam oder unsicher sein, Sie könnten materialisierte Ansichten verwenden, um es einfacher zwischenzuspeichern usw. - siehe Doku dort.