Sql 选择行作为列

Sql 选择行作为列,sql,postgresql,Sql,Postgresql,如何选择产品标识,其中品牌=xxx,颜色=红色?这是id为1的产品。Ha!我不明白这个问题。 name | value | product_id -------+--------+------------ color | red | 9 style | modern | 9 brand | xxx | 1 color | blue | 4 color | red |

如何选择产品标识,其中品牌=xxx,颜色=红色?这是id为1的产品。

Ha!我不明白这个问题。
 name  | value  | product_id 
-------+--------+------------
 color | red    |          9
 style | modern |          9
 brand | xxx    |          1
 color | blue   |          4
 color | red    |          1
SELECT *
FROM YourTable T
WHERE name = 'color' 
AND value = 'red'
AND EXISTS( SELECT 1 FROM YourTable
            WHERE name = 'brand'
            AND value = 'xxx'
            AND product_id = T.product_id)
SELECT product_id FROM tbl WHERE "name"='color' AND "value"='red'
INTERSECT
SELECT product_id FROM tbl WHERE "name"='brand' AND "value"='xxx';