PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Les éléments NULL sont perdus lors de la conversion du résultat de unnest()

La fonction Casting SRF (dans la clause FROM) n'est pas prise en charge - vous ne pouvez y utiliser aucun opérateur. Seul l'appel de fonction est autorisé.

un cast n'est possible qu'en liste de colonnes :

postgres=# SELECT * FROM unnest('{2,NULL,1}'::int[])::text;
ERROR:  syntax error at or near "::"
LINE 1: SELECT * FROM unnest('{2,NULL,1}'::int[])::text;
                                                 ^
postgres=# SELECT v::text FROM unnest('{2,NULL,1}'::int[]) g(v);
   v    
────────
      2
 [null]
      1
(3 rows)

La ligne manquante de NULL est probablement un bogue et doit être signalée

postgres=# SELECT unnest('{1,NULL,4}'::int[])::text;
 unnest 
────────
      1
 [null]
      4
(3 rows)

postgres=# SELECT unnest('{1,NULL,4}'::int[])::numeric;
 unnest 
────────
      1
      4
(2 rows)

Il n'y a aucune raison pour que les lignes NULL soient supprimées, je pense