的hstore格式有沒有更好的方式來獲得一個表的行成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(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;
工作對我來說:
[email protected]=# 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
而不是*您必須參考表的別名:
SELECT hstore(tbl) FROM tbl;
與Asterisk其較長的少自顯示語法:
SELECT hstore(tbl.*) FROM tbl;
啊!我不認爲把表名放在那裏。我剛剛嘗試了SELECT hstore(*)FROM tbl。謝謝! – EvilAmarant7x 2012-01-10 21:53:30
由於某種原因,單獨的'(*)'被解析的方式不同於'(foo。*)'。奇怪,但它是如何工作的。 – filiprem 2012-01-11 06:38:31