PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Попълване на многомерен масив

Postgres има специална функция точно за тази цел:array_fill() :

Използвайте го:

CREATE OR REPLACE FUNCTION teste()
  RETURNS void AS
$func$
DECLARE
    tarifas numeric[7][24] := array_fill(0, ARRAY[7,24]);
    a int;
    b int;
BEGIN
   -- do something
END
$func$  LANGUAGE plpgsql;

Бележки

  • Относно оператора за присвояване в plpgsql::= или = :

  • Обикновено не е възможно да се пише директно в елемент от масив. Можете да свързвате или добавяте/предварявате елементи. Или задайте масив като цяло. Подробности в ръководството. Но изявление като това е не възможно :

    tarifas[%][%] = 0
  • Долната граница по подразбиране на масив е 1, а не 0. Но можете да дефинирате произволно измерение на масива. Пример:

    SELECT '[2:3][2:4]={{7,7,7},{7,7,7}}'::int[]
    



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL, SELECT от max id

  2. Преглед на различните методи за сканиране в PostgreSQL

  3. Как да дефинирам псевдоним на оператор в PostgreSQL?

  4. Как да сравним датите в полетата за дата и час в Postgresql?

  5. Автономна транзакция в PostgreSQL 9.1