是否有更好的方法可以将一行表格转换为hstore格式而不是
SELECT hstore(ARRAY['col1','col2','col3'], ARRAY[col1::text, col2::text, col3::text]) FROM tbl;
它有效,但我认为必须有一个比键入每列更好的方法。 hstore采用记录类型进行输入,但我无法弄清楚如何将单行生成查询提供给函数并使其快乐。 Postgres版本9.0.4。
答案 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;