За последние 24 часа нас посетили 22752 программиста и 1311 роботов. Сейчас ищут 865 программистов ...

Операции над массивами

Тема в разделе "PostgreSQL", создана пользователем polin11, 5 мар 2023.

  1. polin11

    polin11 Активный пользователь

    С нами с:
    22 янв 2019
    Сообщения:
    20
    Симпатии:
    0
    Использую 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]?
     
  2. antoniii

    antoniii Активный пользователь

    С нами с:
    16 мар 2022
    Сообщения:
    419
    Симпатии:
    71
    Надо спросить у людей. Это может быть интересно!
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.084
    Симпатии:
    1.239
    Адрес:
    там-сям
    можно комбинировать || ( или array_cat() ) с unnest() и distinct

    select (ARRAY[1,2,3] || ARRAY[1,4,5])
    [1,2,3,1,4,5]

    select unnest(ARRAY[1,2,3] || ARRAY[1,4,5])
    1
    2
    3
    1
    4
    5

    select distinct unnest(ARRAY[1,2,3] || ARRAY[1,4,5])
    1
    3
    5
    4
    2


    select array(
    select distinct unnest(ARRAY[1,2,3] || ARRAY[1,4,5])
    )
    [1,3,5,4,2]

    https://www.db-fiddle.com/f/jLiF5ruP3ik5jaXJsEamdV/0