簡體   English   中英

Postgresql-卡住構建plpgsql函數

[英]Postgresql - Stuck building a plpgsql function

我是plpgsql的初學者,而且我一直在編寫函數。 我需要執行以下操作的函數:

給一個表,該表中的id_field和該表中的另一個字段,它會執行以下操作:

原始表

id_field     field_traspose
---------    --------------
    1              A
    1              B
    1              C
    2              A
    3              F
    3              X

結果

id_field     field_traspose
---------    --------------
    1              A, B, C
    2              A
    3              F, X

我的嘗試:

CREATE OR REPLACE FUNCTION traspose(mytable character varying, id_field character varying, field_traspose character varying)
  RETURNS setof RECORD AS
$BODY$ 
DECLARE
    r record;
    result record;
BEGIN

FOR r IN EXECUTE 'SELECT '||id_field||','||field_traspose||'  from '||mytable LOOP

-- Here should go the logic that joins every field_traspose for a same id_field and
--returns the record as one of the returning records (can be many different id_fields)   

RETURN NEXT result;
END LOOP;

RETURN;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

我被困在這一點上。 問候,

不需要這樣的功能,它已經內置:

select id_field, 
       string_agg(field_traspose, ', ' order by field_traspose) 
from the_table 
group by id_field
order by id_field;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM