PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Iterowanie po liczbach całkowitych [] w PL/pgSQL

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co nowego w PostgreSQL 11

  2. Jak przekonwertować uniksowy znacznik czasu na wartość daty/godziny w PostgreSQL?

  3. Połącz aplikację na iPhone'a z PostgreSQL za pomocą Libpq

  4. Agent PostgreSQL ponownie w komisji SQL Standard

  5. Jak wykonać operacje aktualizacji na kolumnach typu JSONB w Postgresie 9.4?