sql - 从多列中获取单行中的 SQL 查询结果
问题描述
我有一个带有以下记录的 UPC 表
SKU ATTR_NAME ATTR_VALUE
--------- --------- ----------
38890630 COLOR Black
38890630 DISC Y
38890630 SIZE 8
我想要输出如下
SKU COLOR SIZE
--------- ------ ----
38890630 Black 8
我尝试了多种方法,但无法获得所需的输出。有人可以帮忙吗?
解决方案
您可以使用条件聚合:
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;
推荐阅读
- javascript - Moment js + angular js firefox 日期解析
- typescript - TypeScript“不可分配”给看似相同的类型
- django - Django Rest 框架,博客文章的 Like 按钮逻辑
- c# - try catch 中抛出的异常
- java - 在 Java 中使用 BufferedReader 解析 XML
- c++ - project Euler #13 C++ 无法弄清楚为什么结果是错误的
- gcc - __i686.get_pc_thunk 和 __x86.get_pc_thunk 有什么区别?
- android - Espresso doubleClick() 不适用于某些设备
- php - 拥有一个可以通过免费试用或不免费试用创建客户订阅的计划
- python - 如何将非整数值用作(2D)列表的索引?