轻松输出表行的hstore格式

时间:2012-01-10 20:12:04

标签: postgresql hstore

是否有更好的方法可以将一行表格转换为hstore格式而不是

SELECT hstore(ARRAY['col1','col2','col3'], ARRAY[col1::text, col2::text, col3::text]) FROM tbl;

它有效,但我认为必须有一个比键入每列更好的方法。 hstore采用记录类型进行输入,但我无法弄清楚如何将单行生成查询提供给函数并使其快乐。 Postgres版本9.0.4。

2 个答案:

答案 0 :(得分:10)

是 - 您可以使用hstore()函数将行转换为hstore类型。

SELECT hstore(tbl.*) FROM tbl;

适合我:

filip@filip=# select hstore(foo.*) from foo;
         hstore
------------------------
 "bar"=>"1", "baz"=>"2"
(1 row)

请参阅http://www.postgresql.org/docs/9.0/static/hstore.html#HSTORE-FUNC-TABLE

答案 1 :(得分:-1)

而不是*你必须引用表别名:

SELECT hstore(tbl) FROM tbl;

使用星号,它的语法更长,更少;

SELECT hstore(tbl.*) FROM tbl;