Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Пользовательская агрегатная функция конкатенации / 3 сообщений из 3, страница 1 из 1
17.11.2020, 16:09
    #40019533
AlexeyPetroff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская агрегатная функция конкатенации
Здравствуйте. У меня есть задание, с которым я пытаюсь уже долго разобраться,но всё никак.
Есть таблица, самая простая, состоящая из id(1,2,3,4), к примеру. Нужно написать агрегатную функцию конкатенации, чтобы, по итогу, возвращалось значение по типу 1_2_3_4.
По идее, нужно преобразовать столбик значений либо в массив, либо в строку,а потом пройтись по ней циклом и заменить пробелы на '_' или что-то такое. В теории понятно как это можно реализовать, но на практике я не могу понять с чего хотя бы начать.
Ищу помощи или небольшой подсказки на этот счет.
...
Рейтинг: 0 / 0
17.11.2020, 16:43
    #40019557
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская агрегатная функция конкатенации
AlexeyPetroff,

Вообще такая функция уже написана, называется string_agg:
Код: sql
1.
2.
3.
4.
with t (id) as (values(1),(2),(3),(4)) select string_agg(id::text, '_') from t; 
 string_agg 
------------
 1_2_3_4


Если нужно написать свою собственную агрегатную функцию, то можно посмотреть здесь (тема 16) или здесь .
...
Рейтинг: 0 / 0
17.11.2020, 16:48
    #40019561
AlexeyPetroff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пользовательская агрегатная функция конкатенации
Павел Лузанов,

Да, я видел, что уже есть они, но поставлена задача свою написать. У меня просто проблема с PostgreSQL и в общем с SQL, наверное. Не могу понять как составить это дело.
Чем сама функция и из чего состоит я понял, просто не могу понять как составить и с чего начать саму внутреннюю функцию для обработки. Спасибо за ссылки, изучу, может поможет.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Пользовательская агрегатная функция конкатенации / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]