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

SQLできれいに印刷された形式の配列を選択する

    いくつかの方法があります。 1つの方法は、配列をテキストにキャストし、regexp_split_to_tableで分割することです。 ()
    この関数はPostgreSQL8.3以降に存在します 。

    SELECT regexp_split_to_table(trim(my_2d_intarr::text, '{}'), '},{');
    

    出力:

    0,0,0
    1,1,1
    2,2,2
    

    囲みブラケットが必要な場合(おそらく必要ない場合は?)、次のように追加し直します。

    SELECT '{' || regexp_split_to_table(trim(my_2d_intarr::text, '{}'), '},{') || '}';
    

    Ourtput:

    {0,0,0}
    {1,1,1}
    {2,2,2}
    

    代替:

    これはPostgreSQL8.2でも機能するはずです またはそれ以前のことかもしれませんが、私はそれをテストしませんでした。

    SELECT my_2d_int_arr_var[x:x][1:3]
      FROM (SELECT generate_series(1, array_upper(my_2d_intarr, 1), 1)::int4 AS x)) x
    

    出力:

    {{0,0,0}}
    {{1,1,1}}
    {{2,2,2}}
    

    (中かっこを削除することをお勧めします..)

    それ以外の場合は、配列をループするplpgsql関数を記述します。かなり簡単です。

    関連する unnest()もあります。 関数ですが、基本要素(この場合は整数)ごとに行を返すため、ここでは使用しません。

    結果を出力する1つの(高速!)方法: COPY




    1. cPanelログインなしでPhpMyAdminにアクセスする方法

    2. PHPでmysql_fetch_arrayをループする

    3. MySQL:どのバージョンを確認してください:32ビットまたは64ビット?

    4. C#の複数のテーブルのMySQLにデータを効率的に挿入する