DO
$do$
DECLARE
a integer[] := array[1,2,3];
i integer; -- int, not bigint
BEGIN
FOR i IN 1 .. array_upper(a, 1)
LOOP
RAISE NOTICE '%', a[i]; -- single quotes
END LOOP;
END
$do$;
Или по-просто с FOREACH
в PostgreSQL 9.1 или по-нова версия:
FOREACH i IN ARRAY a
LOOP
RAISE NOTICE '%', i;
END LOOP;
За многоизмерни масиви вижте:
- Обръщане на измерение на масив в plpgsql
Въпреки това, базирани на набор решения с generate_series()
или unnest()
често са по-бързи от превъртането през големи набори. Основни примери:
- PostgreSQL:Разширяване на таблицата с честоти
- Избирайте всеки месец между начална и крайна дата
Потърсете маркерите generate-series или unnest за повече.