当前位置: 首页 > 知识库问答 >
问题:

Postgresql函数,将结果集转换为变量

单凯捷
2023-03-14

我有程序:

CREATE OR REPLACE FUNCTION func()
RETURNS SETOF bigint AS
$BODY$
DECLARE
    rowsQuantity bigint;
BEGIN
    return query select p.id from product p where...;
    GET DIAGNOSTICS rowsQuantity = ROW_COUNT;
    if(rowsQuantity < 8) then
        return query select p.id from product p where p.id not in (ids from prev query) limit 8 - rowsQuantity;
    end if;
END;
$BODY$
LANGUAGE plpgsql VOLATILE;

我的问题是,如何从第一个查询中获取ID并在第二个查询中使用它们,或者我可以通过某种方式声明变量并从第一个查询中选择到这个变量ID中,然后在第二个查询中使用这个变量?我的任务找不到解决方法...请帮帮我

共有1个答案

暴博远
2023-03-14

您可以使用临时表:

begin
    create temp table tt as
        select id 
        from product
        where...
    row_ct = (select count(*) from tt);

    return query select * from tt;

    if row_ct < 8 then
        return query select id 
        from product
        where id not in (select id from tt)
        limit 8 - row_ct;
    end if;
    drop table tt;
end;    
 类似资料:
  • 问题内容: 下面的查询: 给我这样的结果: 我想要的是这样的结果: 如何更改原始SQL查询以得到上面的结果? 问题答案: 您要使用,这应该可以工作: 请注意,不再存在,因为它正在聚合。

  • 问题内容: 我需要将结果集转换为字符串数组。我正在从数据库中读取电子邮件地址,我需要能够像这样发送它们: 这是我的阅读电子邮件地址的代码: MyOutput是: 我需要这样: 我正在使用Oracle 11g。 问题答案: 获得所需的输出: 替换这些行 通过

  • 我希望PostgreSQL将查询结果作为一个JSON数组返回。给定 我想要类似于

  • 问题内容: 由于使用JDBC连接器进行MySQL查询,因此我有一个结果集。所以我的工作是将结果集转换为JSON格式。这样我就可以将其作为AJAX响应发送到客户端。有人可以解释一下如何转换为JSON格式,因为我对Java和JSON都是新手 问题答案: 许多人正确地回答了这个问题。但是,我认为我可以使用以下几小段代码为该帖子添加更多价值。它使用Apache-DBUtils和Gson库。

  • 问题内容: 我正在尝试在C#字符串变量或字符串数​​组中获取SQL结果。是否有可能?我是否需要以某种方式使用SqlDataReader?对于C#函数和所有函数,我都是新手,曾经在PHP中工作,所以请给出一个可行的示例(如果相关,我已经可以连接并访问数据库,进行插入和选择。。我只是不知道如何将结果存储在字符串变量中)。 问题答案: 这不是历史上最伟大的例子,就像您没有从数据库返回任何行一样,您最终都

  • 问题内容: 我要实现的是: 我怎样才能返回对象,而是如果? 问题答案: 我找到了解决方案。在结果上创建了扩展名。 并使用像