PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Lặp lại trên số nguyên [] trong 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$;

Hoặc đơn giản hơn với FOREACH trong PostgreSQL 9.1 trở lên:

   FOREACH i IN ARRAY a
   LOOP 
      RAISE NOTICE '%', i;
   END LOOP;

Đối với mảng nhiều chiều, hãy xem:

  • Lặp lại thứ nguyên mảng trong plpgsql

Tuy nhiên, các giải pháp dựa trên bộ với generate_series() hoặc unnest() thường nhanh hơn lặp qua các tập hợp lớn. Các ví dụ cơ bản:

  • PostgreSQL:Mở rộng Bảng Tần suất
  • Chọn mỗi tháng giữa ngày bắt đầu và ngày kết thúc

Tìm kiếm các thẻ tạo chuỗi hoặc không phù hợp để biết thêm.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Buổi gặp mặt PostgreSQL ở Prague

  2. Có thời gian chờ cho các kết nối PostgreSQL nhàn rỗi không?

  3. Để bỏ qua các khóa trùng lặp trong quá trình 'sao chép từ' trong postgresql

  4. 8 tính năng tương thích mới của Oracle trong EnterpriseDB PPAS 9.2 Beta

  5. Lấy số tuần từ một ngày trong PostgreSQL