sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo evaluar la expresión en la declaración de selección en Postgres

puede escribir una función SQL que haga esto por usted y usar, p. los suministrados 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

Pero, por supuesto, puede ser lento, inseguro, podría usar vistas materializadas para almacenarlo en caché más fácilmente, etc.; consulte el documento allí.