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

テーブルから列名と値を選択します

    もちろん、PL / pgSQL関数を記述して、カタログテーブル pg_attribute あなた自身。ただし、次のいずれかを使用すると、はるかに簡単になります。

    JSON

    関数 row_to_json () 中途半端な機能を提供します。 Postgres 9.2で導入 :

    SELECT row_to_json(t, TRUE) FROM tbl t;
    

    列名について言及する必要はまったくありません。関数は列名をテーブルタイプから派生させます。

    ->SQLfiddleデモ。

    ただし、<が必要です。 code> json_each_text() Postgresから9.3 ずっと行く:

    SELECT json_each_text(row_to_json(t)) FROM tbl t;
    

    表示するような並べ替え順序を取得するには:

    SELECT (json_each_text(row_to_json(t))).*
    FROM   tbl t
    ORDER  BY 1, 2;
    

    (正確にどのように並べ替えるかは不明です。)
    テストされていません。 SQLfiddleはまだPostgres9.3を提供していません。

    hstore

    ただし、追加モジュールでも同じことができます。 hstore 8.4以降で利用可能 。次のコマンドで1回インストールします:

    CREATE EXTENSION hstore;
    

    詳細:
    PostgreSQLのキーと値のペア

    クエリ:

    SELECT (each(hstore(t))).*
    FROM   tbl t
    ORDER  BY 1,2;
    

    それだけです。
    ここでも、追加のモジュールをインストールできないため、SQLfiddleはありません。



    1. PDO動的クエリ構築

    2. PHPとMYSQLに最適な検索アルゴリズムは何ですか?

    3. Oracle12cマルチテナントの基本管理

    4. MySQL:複数のファイルをテーブルにロードする