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

Elementi NULL persi durante il lancio del risultato di unnest()

La funzione SRF di cast (nella clausola FROM) non è supportata:non è possibile utilizzare alcun operatore lì. È consentita solo la chiamata di funzione.

un cast è possibile solo nell'elenco delle colonne:

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 riga mancante da NULL è probabilmente un bug e dovrebbe essere segnalata

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)

Non c'è motivo per cui le righe NULL dovrebbero essere eliminate, penso