当然,您可以编写一个PL /
pgSQL函数并
pg_attribute自己查询目录表。但是,使用以下方法之一要容易得多:
JSON格式
该功能row_to_json()
提供了一半的功能。与Postgres 9.2 一起引入:
SELECt row_to_json(t, TRUE) FROM tbl t;
您根本不必提及列名,该函数从表类型派生它们。
-> SQLfiddle演示。
但是您需要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 tORDER BY 1, 2;
(尚不清楚您要如何精确排序。)
未经测试。SQLfiddle还没有提供Postgres 9.3。
商店
但是,您可以对附加模块
hstore 执行相同的
操作 。自 8.4 起可用。使用以下方法安装一次:
CREATE EXTENSION hstore;
询问:
SELECt (each(hstore(t))).*FROM tbl tORDER BY 1,2;
就这样。
同样,没有SQLfiddle,因为无法在其中安装其他模块。



