将查询结果转换为 hstore

Convert a query result to hstore

我正在使用 PostgreSQL 9.4。我需要将子查询转换为 hstore。 我有这个查询:select code, value_string from dir。它returns

code  | value_string
------|--------------
CODE  | 1
ACC   | 2
...

如何将他的结果转换为hstore('"ACC"=>"2", "CODE"=>"1", ...')

我看起来像这样:SELECT hstore(select code, value_string from dir)

对于the documentation

hstore(text[], text[]) - construct an hstore from separate key and value arrays.

使用 array_agg() 作为此函数的参数。示例:

create table dir (code text, value_string text);
insert into dir values
('CODE', 1),
('ACC', 2);

select hstore(array_agg(code), array_agg(value_string))
from dir;

         hstore          
-------------------------
 "ACC"=>"2", "CODE"=>"1"
(1 row)