PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

NULL emements perdidos ao lançar o resultado de unnest()


A função de conversão SRF (na cláusula FROM) não é suportada - você não pode usar nenhum operador lá. Apenas a chamada de função é permitida.

uma conversão só é possível na lista de colunas:
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)

A linha ausente de NULL provavelmente é um bug e deve ser relatada
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)

Não há razão para que as linhas NULL sejam descartadas, eu acho