gpt4 book ai didi

sql - PL/pgSQL : Add static column to query result

转载 作者:行者123 更新时间:2023-11-29 13:00:41 26 4
gpt4 key购买 nike

我有这个功能:

CREATE OR REPLACE FUNCTION func2(a integer[])
RETURNS SETOF newset AS

$BODY$
declare
x int;
begin

FOREACH x IN ARRAY $1
LOOP
RETURN QUERY SELECT * FROM func1(x);
END LOOP;

return;
end;
$BODY$
LANGUAGE plpgsql VOLATILE

func2 只是将所有调用的所有行附加到 func1。如果第一次调用 func1 得到 2 行,第二次调用得到 3 行,func2 将返回总共 5 行(行本身)。

func1 返回 3 列的架构,因此当前 func2 返回相同的架构。

我想更改 func2 以便它返回 4 列。 func1 中的 3 和另一列包含 x 的值。

例如:调用 func2(ARRAY[500,200])并假设 func1(500) 返回 2 行,func1(200) 返回 3 行。我会得到:

first  second third forth
a b c 500
d e f 500
g h i 200
j k l 200
m n o 200

我创建了一个 newset2 ,它是 newset 和 func2 的另一列 int

CREATE OR REPLACE FUNCTION func2(a integer[])
RETURNS SETOF newset2 AS

如何将所需的列添加到函数中?

最佳答案

您可以只返回额外的列:

RETURN QUERY SELECT *, x FROM  func1(x); 

关于sql - PL/pgSQL : Add static column to query result,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31049118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com