web-dev-qa-db-ja.com

ビューの個別の列としてのhstore-columnの属性?

キーと値のペアを格納するIDとhstore列の2つの列があるテーブルがあるとします。

その列を次のようにクエリできます。

SELECT name, attributes->'device' as device
FROM products
WHERE attributes->'edition'= 'ebook'

キー/値がhstore列のすべてではなく、ビューの列として表示されるこのテーブルのビューを作成できますか?

例:アメニティのキーが含まれる可能性があるhstoreキーがあります。 IDとアメニティの値を新しいビューに表示するビューを作成します。

3
code base 5000

できますよ。

CREATE VIEW v_ebooks AS
SELECT products_id, attributes->'device' AS device
FROM   products
WHERE  attributes->'edition'= 'ebook';

SQL Fiddleデモ

ただし、列のstaticセットの場合のみです。 hstore 列のすべての可能な属性の動的出力は、作成時に戻り値の型を宣言する必要があるという要件と競合します。

この後者の答えは、完全に動的なソリューションを(2つのステップで)提供します。

3