もちろん、PL / pgSQL関数を記述して、カタログテーブル pg_attribute
あなた自身。ただし、次のいずれかを使用すると、はるかに簡単になります。
JSON
関数 row_to_json ()
中途半端な機能を提供します。 Postgres 9.2で導入 :
SELECT row_to_json(t, TRUE) FROM tbl t;
列名について言及する必要はまったくありません。関数は列名をテーブルタイプから派生させます。
ただし、<が必要です。 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;
クエリ:
SELECT (each(hstore(t))).*
FROM tbl t
ORDER BY 1,2;
それだけです。
ここでも、追加のモジュールをインストールできないため、SQLfiddleはありません。