| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PostgreSQL > Операции над массивами |
| Автор: polin11 5.3.2023, 02:38 |
| Использую Postgresql 1) Есть удобная операция конкатенация массива ||, но при такой операции могут быть будут элементов например array[1,2,3] || array[1,4] -> array[1,2,3,1,4] Вопрос как объединить 2 массива при этом убрать дубли элементов? 2) Если ли операция или функция убрать из массива элементы другого массива, то есть array[1,2,3] - array[1,4] -> array[2,3]? |
| Автор: RubyLudwigValentin 5.3.2023, 09:18 |
| Postgres уже объектная база данных. Массивы в базе - это не стандартный SQL. Но, возможно, можно написать хранимую процедуру, которая будет убирать дубли из вашего массива. |
| Автор: RubyLudwigValentin 6.3.2023, 03:11 | ||||
ОК, уточню, база данных SQL, но с объектами. Массив - это объектное расширение.
А где вложенный цикл писать будете? Процедура типа функция. На входе - массив с повторениями, на выходе - уже без. Можно дополнительно отсортировать массив. |
| Автор: Akina 6.3.2023, 07:49 |
Вообще не буду его писать, всё сделаю в запросе. В крайнем случае есть CTE. |
| Автор: RubyLudwigValentin 6.3.2023, 11:04 | ||
А как из массива прочитать DISTINCT значения? Потрактовать его как таблицу? Существует ли такая функция? |
| Автор: Akina 6.3.2023, 14:27 |
| RubyLudwigValentin, я ж выше всё рассказал. Что ещё нужно-то? |