我想创建一个函数返回一个表,其中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
的特殊声明或特殊用途来执行此操作?
答案 0 :(得分: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@