sql >> Database teknologi >  >> RDS >> PostgreSQL

Udfyld multidimensionel array

Postgres har en dedikeret funktion til netop det formål:array_fill() :

Brug det:

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;

Bemærkninger

  • Matrixdimensioner i numeric[7][24] er blot dokumentation. Manualen:
  • Om tildelingsoperatoren i plpgsql::= eller = :

  • Det er generelt ikke muligt at skrive til et array-element direkte. Du kan sammenkæde eller tilføje / tilføje elementer. Eller tildel et array som helhed. Detaljer i manualen. Men et udsagn som dette er ikke muligt :

    tarifas[%][%] = 0
  • Standard nedre grænse for et array er 1, ikke 0. Men du kan definere vilkårlig array-dimension. Eksempel:

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



  1. Sletning af en række baseret på den maksimale værdi

  2. Oracle-datofunktion for den foregående måned

  3. MySQL:få MAX eller GREATEST af flere kolonner, men med NULL-felter

  4. Hvordan får man data fra en mysql-database ved hjælp af javascript?