PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie wendet man eine Funktion auf jedes Element einer Array-Spalte in Postgres an?

Verwandeln Sie zuerst das Array in ein Set, indem Sie unsest:

verwenden
> SELECT n FROM unnest(ARRAY[1.53224,0.23411234]) AS n;
     n      
------------
    1.53224
 0.23411234
(2 rows)

Wenden Sie dann einen Ausdruck auf die Spalte an:

> SELECT ROUND(n, 2) FROM unnest(ARRAY[1.53224,0.23411234]) AS n;
 round 
-------
  1.53
  0.23
(2 rows)

Verwenden Sie schließlich array_agg, um die Menge wieder in ein Array umzuwandeln:

> SELECT array_agg(ROUND(n, 2)) FROM unnest(ARRAY[1.53224,0.23411234]) AS n;
  array_agg  
-------------
 {1.53,0.23}
(1 row)