1
簡單的問題,但我的搜索fu失敗,所以我甚至不知道這是否可能。Postgres:如何查看hstore列作爲表
我在Postgres中有一張表,叫它key_value_store
,帶有一個hstore字段,稱之爲document
。此外,我定義的類型,稱之爲key_value_type
,其作爲屬性,我想從hstore提取到一個完全成熟的錶行中的字段:
CREATE TYPE key_value_type AS (property1 text, property2 text, property3 text)
所以我想輸出(最終使用視圖)一個表的列數與key_value_type
的屬性一樣多,我需要爲許多屬性組合創建這個表,因此我不想爲每個組合創建一個表。
我試着用:
SELECT populate_record(null::key_value_type, document) FROM key_value_store
而是組成:
| PROPERTY 1 | PROPERTY 2 | PROPERTY 3 |
........................................
| value 1.1 | value 1.2 | value 1.3 |
........................................
| value 2.1 | value 2.2 | value 2.3 |
........................................
| and so on | and so on | and so on |
........................................
什麼,我得到的是:
| populate_record |
........................................
| (value 1.1, value 1.2, value 1.3) |
........................................
| (value .1, value 2.2, value 2.3) |
........................................
| (and so on, and so on, and so on) |
........................................
如何獲得期望的結果從這裏(或來自任何其他地方)? 我注意到,使用表名而不是key_value_type
我實際上得到我想要的,但正如我所說,我會避免爲每個需要的屬性組合創建一個表。
大聲笑,我已經試圖用三個嵌套查詢最令人費解的解決方案。 :D非常感謝! –
你如何用控制檯,Postgres和Ruby on Rails來做到這一點? –
@Jackson_Sandland:我不使用Ruby。在'psql'中(我假設你是用「console」來表示的),你只需運行該語句即可。正如你對任何其他SQL客戶端所做的一樣。 –