gpt4 book ai didi

sql - 在postgres中声明一个表类型的变量

转载 作者:行者123 更新时间:2023-12-04 02:14:48 24 4
gpt4 key购买 nike

我需要编写一个如下所示的存储过程:

CREATE OR REPLACE FUNCTION foo() RETURNS TABLE(user_id integer, count bigint) AS $$
some_array integer[];
ret_val __WHAT_TYPE_;
BEGIN
FOR i IN 1 .. array_upper(some_array, 1)
LOOP
//modify the ret_val
END LOOP;
RETURN ret_val;
END $$
LANGUAGE plpgsql;
但是不知道是什么类型的 ret_val我应该申报吗?

最佳答案

在返回表的函数中,您不需要返回值的变量。
表的列被视为 OUT 参数。
您可以为它们分配值并使用 RETURN NEXT,例如:

CREATE OR REPLACE FUNCTION foo() 
RETURNS TABLE(user_id integer, counts bigint) AS $$
DECLARE
i integer;
BEGIN
FOR i IN 1..4
LOOP
user_id = i;
counts = i* i;
RETURN NEXT;
END LOOP;
END $$
LANGUAGE plpgsql;

SELECT * FROM foo();

user_id | counts
---------+--------
1 | 1
2 | 4
3 | 9
4 | 16
(4 rows)

关于sql - 在postgres中声明一个表类型的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34988643/

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