sql >> Databáze >  >> RDS >> PostgreSQL

NULL prvky ztracené při odesílání výsledku unnest()

Funkce Casting SRF (v klauzuli FROM) není podporována - nelze tam použít žádný operátor. Je povoleno pouze volání funkce.

přetypování je možné pouze ve sloupcovém seznamu:

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)

Chybějící řádek z NULL je pravděpodobně chyba a měl by být nahlášen

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)

Myslím, že není důvod, proč by měly být řádky NULL vynechány




  1. BDE vs ADO v Delphi

  2. Jak importuji řádky do Postgresql ze STDIN?

  3. Úroveň izolace SERIALIZABLE v Spring-JDBC

  4. Postup krok za krokem pro migraci dat z Excelu do databázové tabulky MySql