私は How to evaluate expression in select statement in Postgrespostgres-utils eval()エラーの修正方法:テーブル "foo"のFROM-clauseエントリがありませんか?
での回答から以下のコードを試してみましたが、修正するためにどのようにエラー
ERROR: missing FROM-clause entry for table "product"
LINE 1: select product.price*0.95
を得たのPostgres 9.1+でデータベースに
を格納し、価格式を評価するための方法を探しています?
多分evalをパラメータとして、顧客と製品現在の行を渡すと、evalのexpresionでそれらを使用することは可能でしょうか?
create or replace function eval(sql text) returns text as $$
declare
as_txt text;
begin
execute 'select ' || sql into as_txt ;
return as_txt ;
end;
$$ language plpgsql;
create table customer
(id int primary key,
priceexpression text);
insert into customer values (1, 'product.price*0.95'),(2,'cost+12.0');
create table product
(id char(20) primary key,
price numeric(12,4),
cost numeric(12,4));
insert into product values ('PRODUCT1', 120, 80),('PRODUCT2', 310.5, 290);
select
customer.id as customer,
product.id as product,
eval(priceexpression) as price
from customer,product
あなたの問題に対する最良の答えに投票することができればいいです:) –
私はあなたの答えをマークアップして – Andrus