gpt4 book ai didi

postgresql - PL/pgSQL 函数 - 遍历特定列并在循环中执行第二个查询

转载 作者:行者123 更新时间:2023-11-29 12:45:59 28 4
gpt4 key购买 nike

正如您在标题中所见,我想遍历包含建筑物 ID 的特定列,然后函数将执行使用这些循环值的第二个查询,并在 PostgreSQL 中显示查询结果。

请注意下面的代码:

CREATE OR REPLACE FUNCTION getBID() RETURNS SETOF building AS
$BODY$
DECLARE
r building%ROWTYPE;
BEGIN
FOR r IN EXECUTE 'SELECT point_id FROM building'

LOOP

RETURN QUERY EXECUTE 'SELECT gid, nof, year
FROM building
WHERE point_id = ' || r;

END LOOP;
RETURN;
END
$BODY$
LANGUAGE 'plpgsql' ;

SELECT * FROM getBID();

我的建筑物 ID 是整数值。我想知道以下两个方面:

  • “r”变量应该声明为“整数”?
  • 我的第二个查询也应该在循环中使用吗?

提前致谢...

最佳答案

对于这样的琐碎任务,请使用 simple SQL function相反:

CREATE OR REPLACE FUNCTION get_buildings()
RETURNS SETOF building AS
'SELECT * FROM building' LANGUAGE sql;

或者只是:

SELECT * FROM building;

这是一个实际的例子 FOR loop在 plpgsql 中填充单个列:
Returning results from a function in 'select statement' format

另一个匿名记录的例子:
Loop on tables with PL/pgSQL in Postgres 9.0+

Try a search.还有很多。

关于postgresql - PL/pgSQL 函数 - 遍历特定列并在循环中执行第二个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22283282/

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