ФорумРазработкаБазы данных → помогите составить функцию PostgreSQL

помогите составить функцию PostgreSQL

  • onzone

    Сообщения: 77 Репутация: N Группа: Кто попало

    Spritz 9 августа 2012 г. 10:10

    Добрый день, столкнулся с такой проблемой имеется функция на PostgreSQL


    DECLARE
    ret tavp;
    tRec record;
    fdata smallint[];
    fnickname varchar[];
    BEGIN

    FOR tRec IN SELECT id,nickname FROM users_contact WHERE phonenumber = phone_number LOOP
    fdata:=array_append(fdata, tRec.id);
    ret:=('id',fdata);
    fnickname:=array_append(fnickname,tRec.nickname);
    ret:=('nicknames',fnickname);
    END LOOP;
    RETURN NEXT ret;
    END;


    Результат запроса вот такой получается.
    (nicknames,"{onzone,istan}")
    Но я хочу получить вот такой результат.
    (id,"{1,2}")
    (nicknames,"{onzone,istan}")
    Я понимаю, что у меня при прохождении цикла переопределяется переменная ret. Из-за этого соотвественно выводится только 1 результат. Но т.к у меня нет опыта работы с SQL я не могу составить норм алгоритм, чтобы сделать норм выборку. Если кто сталкивался с данной проблемой. Помогите советом плз.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!