gpt4 book ai didi

postgresql - 如何组合自定义变量并将它们显示为 postgres 中的表记录

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

我是 plpgsql 的初学者,正在从事一个项目,该项目要求我编写一个函数,该函数以 2 列 (res,Result) 的形式返回两个变量。我做了很多搜索,但没有找到相同的答案。下面是对我的代码的引用

CREATE OR REPLACE FUNCTION propID(character varying) 
RETURNS SETOF RECORD AS $val$
DECLARE
t_row record;
res BOOLEAN;
result character varying;
value record;
BEGIN
FOR t_row IN SELECT property_id FROM property_table WHERE ward_id::TEXT = $1 LOOP

RAISE NOTICE 'Analyzing %', t_row;

res := false; -- here i'm going to replace this value with a function whos return type is boolean in future
result := t_row.property_id;

return next result; --here i want to return 2 variables (res,result) in the form of two columns (id,value)

END LOOP;

END;
$val$
language plpgsql;

非常感谢对上述查询的任何帮助。

最佳答案

假设 property_idward_id 是整数,您可以通过如下简单查询实现您的目标:

select some_function_returning_boolean(property_id), property_id
from property_table
where ward_id = 1; -- input parameter

如果你绝对需要一个函数,它可以是一个 SQL 函数,比如

create or replace function prop_id(integer) 
returns table (res boolean, id int) language sql
as $$
select some_function_returning_boolean(property_id), property_id
from property_table
where ward_id = $1
$$;

在 plpgsql 函数中你应该使用return query:

create or replace function prop_id(integer) 
returns table (res boolean, id int) language plpgsql
as $$
begin
return query
select some_function_returning_boolean(property_id), property_id
from property_table
where ward_id = $1;
end
$$;

关于postgresql - 如何组合自定义变量并将它们显示为 postgres 中的表记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59050955/

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