PostgreSQL | Простой цикл по массиву

PostgreSQL | Простой цикл по массиву

Как обойти массив в PostgreSQL при помощи цикла FOREACH?

Через команду DO мы имитируем работу функции, в которой описан простейший цикл по массиву:

-- Цикл по массиву
DO $$
DECLARE
  -- Исходный массив
  arr text[] := '{Лена,Маша,Ян,Петя,Вася}';
  -- Переменная для хранения одного элемента массива при обходе циклом
  x text;
BEGIN
  -- Цикл
  FOREACH x IN ARRAY arr
  LOOP
    -- Здесь "x" содержит один элемент массива
    -- на каждую новую итерацию цикла
    RAISE NOTICE 'x = %', x;
  END LOOP;
END;
$$

 

Мы объявляем две переменные.

В переменной «arr» находится массив с типом данных «text«.

В переменную «x» будут перезаписываться текущие элементы массива с типом данных «text» на каждой итерации цикла.

Для визуализации работы простого цикла мы будем использовать команду RAISE NOTICE. На каждой итерации цикла мы будем в консоль выводить текущее значение в переменной «x«.

Результат консольных выводов будет такой:

Простой цикл по массиву в PostgreSQL
Простой цикл по массиву в PostgreSQL

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdminhttps://www.pgadmin.org

Официальный сайт СУБД PostgreSQLhttps://www.postgresql.org

Команды SQLhttps://postgrespro.ru/docs/postgresql/15/sql-commands

Цикл по элементам массива — https://postgrespro.ru/docs/postgresql/15/plpgsql-control-structures#PLPGSQL-FOREACH-ARRAY