首页 > 解决方案 > 从多列中获取单行中的 SQL 查询结果

问题描述

我有一个带有以下记录的 UPC 表

SKU         ATTR_NAME       ATTR_VALUE
---------   ---------       ----------
38890630    COLOR           Black
38890630    DISC            Y
38890630    SIZE            8

我想要输出如下

SKU         COLOR     SIZE
---------   ------    ----
38890630    Black      8

我尝试了多种方法,但无法获得所需的输出。有人可以帮忙吗?

标签: sqloraclepivot

解决方案


您可以使用条件聚合:

select sku,
       max(case when attr_name = 'COLOR' then attr_value end) as color,
       max(case when attr_name = 'DISC' then attr_value end) as disc,
       max(case when attr_name = 'SIZE' then attr_value end) as size
from t
group by sku;

推荐阅读