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

NULL-elementer tabt ved casting af resultatet af unnest()

Casting SRF-funktion (i FROM-klausul) understøttes ikke - du kan ikke bruge nogen operatør der. Kun funktionskald er tilladt.

en cast er kun mulig i kolonnelisten:

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)

Manglende række fra NULL er sandsynligvis fejl og bør rapporteres

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)

Der er ingen grund til, hvorfor NULL-rækker skal droppes, tror jeg




  1. Sådan får du en liste over primær nøglebegrænsning fra alle databaser på SQL Server Instance - SQL Server / TSQL Tutorial Del 60

  2. Sæt første bogstav i hvert ord med stort i eksisterende tabel

  3. Sådan konverteres fra varbinary til char/varchar i mysql

  4. Rails Heroku app fejl