如您在标题中所看到的,我想循环循环,该列构建构建ID,然后函数将执行第二个查询,该查询使用这些循环值并在PostgreSql中显示Query resuly。
请注意以下代码:
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"变量应声明为"整数"?
- 我的第二个查询也应该在循环中使用?
预先感谢...
对于这样的琐碎任务,使用简单的SQL函数:
CREATE OR REPLACE FUNCTION get_buildings()
RETURNS SETOF building AS
'SELECT * FROM building' LANGUAGE sql;
或仅:
SELECT * FROM building;
这是一个实际FOR
循环的一个示例从"选择语句"格式中的函数返回结果
另一个带有匿名记录的示例:
在POSTGRES 9.0
尝试搜索。还有更多。