高分求助 PostgreSQL动态行转列

高分求助 PostgreSQL动态行转列
最新回答
踮起脚╮亲伱

2023-11-15 03:20:18

代码示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
or
select aa3('dd');
fetch all in aa;
 
CREATE OR REPLACE FUNCTION aa3(refcursor) RETURNS refcursor AS
$BODY$
declare 
    sql varchar(1000); 
    myrec record; 
    ref refcursor;
begin 
    ref:='aa';
    sql:='select "CustomerId" '
    for myrec in select from "Cus_Field" loop 
        sql := sql || ',max(case "FieldId" when ' || myrec."FieldId"  ||
' then "FieldValue" end) as ' || myrec."FieldName"
    end loop ;
    sql := sql || ' from "Cus_CustomerField" group by "CustomerId"';
    open ref for execute sql; 
    return ref; 
end;
$BODY$
LANGUAGE 'sql' VOLATILE
COST 100;