Postgresql函数

时间:2017-05-02 09:58:41

标签: sql postgresql plpgsql

这些是我提供的类型定义

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行

我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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;