PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como avaliar a expressão na instrução select no Postgres


você pode escrever uma função SQL que faça isso para você e use, por exemplo, os fornecidos com 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

Mas é claro que pode ser lento, inseguro, você pode usar visualizações materializadas para armazená-lo em cache mais facilmente, etc. - veja o docu lá.