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$;
Lub prościej z FOREACH
w PostgreSQL 9.1 lub nowszym:
FOREACH i IN ARRAY a
LOOP
RAISE NOTICE '%', i;
END LOOP;
Tablice wielowymiarowe patrz:
- Zapętlanie wymiaru tablicy w plpgsql
Jednak rozwiązania oparte na zestawach z generate_series()
lub unnest()
są często szybsze niż zapętlanie dużych zestawów. Podstawowe przykłady:
- PostgreSQL:rozszerzenie tabeli częstotliwości
- Wybierz każdy miesiąc między datą początkową a końcową
Przeszukaj tagi generowania serii lub rozpakuj, aby uzyskać więcej.