gpt4 book ai didi

postgresql - SELECT 多行多列到一个记录变量中

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

plpgsql函数中,如何将多行多列选入一个记录变量?

例如,我想SELECT 两列(yearintegervalue)的多个实例到一个记录变量(年值)。

*EDIT - 以下代码只是一个较长函数的一部分,我需要变量 yearvalues 来包含表中的多行和多列,我可以从中创建更多变量

CREATE OR REPLACE FUNCTION fn_function ()
RETURNS TABLE () AS $$
DECLARE
year c.year%TYPE;
value c.value%TYPE;
yearvalues record;
BEGIN
FOR yearvalues IN
SELECT c.year, c.value FROM c
LOOP
END LOOP;
-- creation of additional variables from the yearvalues variable
END;
$$ LANGUAGE plpgsql;

最佳答案

PL/pgSQL 中没有表变量——至少在 Postgres 14 之前是这样,而且可能永远不会。

使用临时表:

或者用 CTEs(或者在简单情况下只是子查询)代替单个查询的本地范围。使用(数据修改)CTE 时,“单个查询”可以包含多个命令。这将是最有效的:

或者将游标与循环相结合(考虑FNC - 函数下的示例):

但是使用 FOR 循环的隐式游标通常更简单、更有效:

关于postgresql - SELECT 多行多列到一个记录变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24949266/

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