首页 > 解决方案 > 通过将一列设为两列(或简单地将一列拆分为两列)来加入表以获取输出

问题描述

我正在尝试通过将一列作为两列(或简单地将一列拆分为两列)来加入一个表以获取输出

SELECT * FROM PRODUCT;

KEY| PRODUCT |CATEGORY
1  | trip    |city
2  | trip    |ocean

进入

KEY| PRODUCT |CATEGORY1 |CATEGORY2
1  | trip    |city      |ocean

标签: sqlsql-servertsql

解决方案


一种方法使用聚合。. . 但这仅适用于两类:

select min(key), product,
       min(category), nullif(max(category), min(category))
from t
group by product;

更常见的是,在列出产品的多个值(例如类别)时,您会将结果放在 JSON 数组或字符串中:

select min(key), product,
       string(category, ',') within group (order by category) as categories
from t
group by product;

推荐阅读