CREATE FUNCTION reffunc2() RETURNS refcursor AS '
declare
    sql text;
    myrec record;
    ref refcursor
begin
    sql:='select 姓名 ';
    for myrec in select distinct 课程 from tb loop
        sql:=sql||$$ , max(case 课程 when '$$||myrec.课程||$$' then 分数 else 0 end) as $$||myrec.课程||;
    end loop
    sql:=sql||' , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名'
    open refr for execute sql;
    return ref;
end;报错 错误信息为
ERROR:  syntax error at or near "select"
LINE 7:     sql:='select 姓名 ';
                  ↑
请问 有没有高手帮我解决