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

Postgresで配列が空かどうかを確認する方法

    array_length() 2つが必要です パラメータ、2番目は配列の次元です:

    array_length(id_clients, 1) > 0
    

    だから:

    IF array_length(id_clients, 1) > 0 THEN
        query := query || format(' AND id = ANY(%L))', id_clients);
    END IF;

    これは、空の配列の両方を除外します NULL。

    または、 cardinality()> Postgres9.4以降で。 @bronzenoseによる追加の回答を参照してください。

    ただし、クエリを連結して EXECUTEで実行する場合 、 USINGを使用して値を渡す方が賢明です 句。例:

    ところで、配列が空かどうかを明示的に確認するには (あなたのタイトルが言うように-しかしそれはではありません ここで必要なもの)空の配列と比較するだけです:

    id_clients = '{}'
    

    それで全部です。取得:

    TRUE ..配列が空です
    NULL ..配列がNULLです
    FALSE ..その他の場合(配列には要素があります-NULL要素だけでも)



    1. データストリームを処理するためのMySQLインサートの最適化

    2. 2列の複数のレコードから文字列を作成する

    3. Group_Concat()がSQLiteでどのように機能するか

    4. Django syncdbはSQLiteで動作し、MySQLでは失敗します