Postgresql函数

问题描述 投票:0回答:1

这些是提供给我的类型定义

create type IR as (pattern_number integer, uoc_number integer);

我目前的进展是:

create or replace function q1(pattern text, uoc_threshold integer)
  returns setof IR
  as $$
  BEGIN
    RETURN QUERY
    select count(code) from temp where code like $1;
    RETURN QUERY 
    select count(code) from temp where code like $1 and uoc > $2;

  END;
$$ language plpgsql;

我的输出必须是这样的:查询: -

select * 
from q1('ECO%', 6);

pattern_number  |   uoc_number 
80              |         5      

我收到一个错误说:

错误:查询结构与函数结果类型不匹配 DETAIL:返回类型bigint与第1列中的预期类型整数不匹配。 语境:RET / QUERY中的PL / pgSQL函数q1(文本,整数)第3行

我该如何解决?

sql postgresql plpgsql
1个回答
1
投票

这是你想要的吗?..

create or replace function q1(pattern text, uoc_threshold integer)
  returns setof IR
  as $$
  BEGIN
    RETURN QUERY
    select (select count(code) from temp where code like $1)::integer
    ,(
    select count(code) from temp where code like $1 and uoc > $2)::integer;

  END;
$$ language plpgsql;
© www.soinside.com 2019 - 2024. All rights reserved.