2

我想知道是否有可能在 Postgres 中创建类似命名计算的东西?说,我有一张桌子:

create table foo (
  bar smallint,
  baz smallint
)

我可以跑来select (bar / baz) * 100 from foo;得到我的结果,但我想要一个公式(伪代码):avg_foo ::= (bar/baz)*100然后做得到select avg_foo from foo;相同的结果。理想情况下,我想有一个单独的计算表:

create table calculations (
  name varchar,
  formula varchar
)

这样我就可以动态创建计算并在选择中使用它们,如下所示:

insert into calculations (name, formula) values
  ('sum_bar_baz', 'bar+baz'),
  ('mult_bar_baz', 'bar*baz');
select sum_bar_baz, mult_bar_baz from foo;

我如何用 Postgres 做到这一点?

4

1 回答 1

1

在 plpgsql 中编写一个元组返回函数,并从内部调用所需的函数。

于 2011-03-15T12:22:05.270 回答