sql >> データベース >  >> RDS >> PostgreSQL

unnest()の結果をキャストするときに失われたNULL要素

    SRF関数(FROM句内)のキャストはサポートされていません。そこでは演算子を使用できません。関数呼び出しのみが許可されます。

    キャストは列リストでのみ可能です:

    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)
    

    NULLから行が欠落しているのはおそらくバグであり、報告する必要があります

    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)
    

    NULL行を削除する必要がある理由はないと思います




    1. mysql_queryの結果の1つの列を配列に取得するにはどうすればよいですか?

    2. プレフィックスが追加されたMYSQLテーブルから最大数を選択します

    3. Laravel:1つのクエリだけで同じIDを持つ複数のテーブルから行を削除するにはどうすればよいですか?

    4. すべての子カテゴリを取得する再帰関数