7

テーブルの行をhstore形式にするよりも良い方法はありますか

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

それは機能しますが、各列を入力するよりも良い方法が必要だと思います。hstoreは入力用にレコード型を取りますが、単一行を生成するクエリを関数にフィードして満足させる方法がわかりませんでした。Postgresバージョン9.0.4。

4

1 に答える 1

13

はい - 関数を使用して行を 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を参照してください。

于 2012-01-10T21:41:03.123 に答える