0

我想创建一个函数,返回一个表,其中 1 行只填充了 2 个预先计算的值。

下面我的例子来澄清我的意思

  create function()
  returns table(a integer,b integer)
  language sql
  begin
   declare c integer;
   declare d integer;
   set c=10;
   set d=20;
   -- how to return here c and d on the same row
   -- of a return table?
  end@

实现这一目标的最佳方法是什么?我应该创建一个临时表并插入这两个值,还是有特殊的语句或特殊用途SELECT来做到这一点?

4

1 回答 1

3

我不知道这是否是最好的方法,因为您没有指定成为最好的标准,但您可以使用 VALUES 语句,如下所示:

create function()
returns table(a integer,b integer)
language sql
begin
 return values (10, 20);
end@

或者,如果你真的需要变量:

create function()
returns table(a integer,b integer)
language sql
begin
 declare c integer;
 declare d integer;
 set c=10;
 set d=20;
 return values (c, d);
end@
于 2013-09-17T12:09:48.300 回答