gpt4 book ai didi

sql - 是否可以在 postgresql 中合并结果?

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

我需要合并从不同查询聚合的表,并从存储过程返回整个结果集。这就是我的意思:

CREATE OR REPLACE FUNCTION invalid_pa() RETURNS TABLE (p_id int) AS $$
DECLARE
pl int[] := ARRAY(SELECT id FROM p.pl);
BEGIN
FOR i IN 1 .. array_upper(platforms, 1)
LOOP
--The query is SELECT id FROM dblink(connection_str(i), 'Some query')
--I need to union all the query above
--and return the unioned table
END LOOP;
END $$
LANGUAGE plpgsql;

如何以这种方式合并不同的结果集?

connection_str(i) 这是一个返回实际连接字符串的存储过程

最佳答案

您发布的代码有些问题,但忽略这些问题,解决方案将有点像这样:

CREATE OR REPLACE FUNCTION invalid_pa() RETURNS TABLE (p_id int) AS $$
DECLARE
pl int[] := ARRAY(SELECT id FROM p.pl); -- ???
BEGIN
FOR i IN 1 .. array_upper(platforms, 1) -- platforms???
LOOP
RETURN QUERY SELECT id FROM dblink(connection_str(i), 'Some query');
END LOOP;
RETURN;
END $$ LANGUAGE plpgsql;

RETURN QUERY 将零行或多行添加到结果集中,最后的 RETURN 将整个结果集返回给调用者。实际上,所有 dblink 调用的结果都UNION在一起。

关于sql - 是否可以在 postgresql 中合并结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31784181/

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