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

Postgresql-行全体を配列として返します

    これかもしれません: http://www.sqlfiddle.com/#!1/d41d8 / 364

    select translate( string_to_array(x.*::text,',')::text, '()', '')::text[] 
    from pg_tables as x
    

    仕組み(裏返し)、5つのステップ:

    1位:

    select x.*::text from pg_tables as x;
    

    サンプル出力:

    |                                                            X |
    ----------------------------------------------------------------
    |                    (pg_catalog,pg_statistic,postgres,,t,f,f) |
    |                         (pg_catalog,pg_type,postgres,,t,f,f) |
    

    2番目:

    select string_to_array(x.*::text,',') from pg_tables as x;
    

    サンプル出力:

    |                           STRING_TO_ARRAY |
    ---------------------------------------------
    | (pg_catalog,pg_statistic,postgres,,t,f,f) |
    |      (pg_catalog,pg_type,postgres,,t,f,f) |
    

    3位:

    select string_to_array(x.*::text,',')::text from pg_tables as x;
    

    サンプル出力:

    |                               STRING_TO_ARRAY |
    -------------------------------------------------
    | {(pg_catalog,pg_statistic,postgres,"",t,f,f)} |
    |      {(pg_catalog,pg_type,postgres,"",t,f,f)} |
    

    4位:

    select translate( string_to_array(x.*::text,',')::text, '()', '') from pg_tables as x
    

    サンプル出力:

    |                                   TRANSLATE |
    -----------------------------------------------
    | {pg_catalog,pg_statistic,postgres,"",t,f,f} |
    |      {pg_catalog,pg_type,postgres,"",t,f,f} |
    

    最後に:

    select translate( string_to_array(x.*::text,',')::text, '()', '')::text[] 
    from pg_tables as x
    

    サンプル出力:

    |                               TRANSLATE |
    -------------------------------------------
    | pg_catalog,pg_statistic,postgres,,t,f,f |
    |      pg_catalog,pg_type,postgres,,t,f,f |
    

    ライブテスト: http://www.sqlfiddle.com/#!1/d41d8/ 373

    それが機能することを証明するには:

    with a as 
    (
      select translate( string_to_array(x.*::text,',')::text, '()', '')::text[] as colArray 
      from pg_tables as x
    )
    select row_number() over(), unnest(colArray)
    from a;
    

    サンプル出力:

    | ROW_NUMBER |                  UNNEST |
    ----------------------------------------
    |          1 |              pg_catalog |
    |          1 |            pg_statistic |
    |          1 |                postgres |
    |          1 |                         |
    |          1 |                       t |
    |          1 |                       f |
    |          1 |                       f |
    |          2 |              pg_catalog |
    |          2 |                 pg_type |
    |          2 |                postgres |
    |          2 |                         |
    |          2 |                       t |
    |          2 |                       f |
    |          2 |                       f |
    


    1. MySQLで文字列の左または右の部分を返す方法

    2. Mysql:macOSにインストールした直後にユーザー'root'@'localhost'のアクセスが拒否されました

    3. Oracleデータベースバックアップの概要

    4. OracleとSQLサーバーを使用したページングと一般的なページング方法