在将表格的一行转换为hstore格式时,是否有比以下方法更好的方法:
SELECT hstore(ARRAY['col1','col2','col3'], ARRAY[col1::text, col2::text, col3::text]) FROM tbl;
它起作用,但我想必须有比打出每个列更好的方法。Hstore接受输入的记录类型,但我无法弄清如何将单行生成查询传递到函数中并使其正常工作。Postgres版本为9.0.4。
在将表格的一行转换为hstore格式时,是否有比以下方法更好的方法:
SELECT hstore(ARRAY['col1','col2','col3'], ARRAY[col1::text, col2::text, col3::text]) FROM tbl;
它起作用,但我想必须有比打出每个列更好的方法。Hstore接受输入的记录类型,但我无法弄清如何将单行生成查询传递到函数中并使其正常工作。Postgres版本为9.0.4。
是的 - 你可以使用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
(*)
与(foo.*)
的解析方式不同。很奇怪,但这就是它的工作方式。 - filiprem