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

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

  • onzone

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

    Spritz 9 августа 2012 г. 18: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 я не могу составить норм алгоритм, чтобы сделать норм выборку. Если кто сталкивался с данной проблемой. Помогите советом плз.

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