首页 > 解决方案 > SQL Unpivot 与 CASE 和 LIKE 语句

问题描述

寻求一些帮助以 UNPIVOT 类似于所附图像的表格。我有两种类型的列名,在标题中带有“Sales”或“Staff”,我想将它们合并到仅用于 Sales 和 Staff 的列中。理想情况下,这将是动态完成的,因此我没有指定单独的列名,而只是我正在搜索的标准。该区域也可以是动态的,或者通过加入一个单独的 metric -> region 映射表来完成。

在此处输入图像描述

标签: sqldynamicunpivot

解决方案


通用解决方案使用union all

select period, channel, 'East' as region, east_sales as sales, east_staff as staff
from t
union all
select period, channel, 'West' as region, west_sales as sales, west_start as staff
from t;

但是,在支持横向连接的数据库中,我建议使用横向连接。


推荐阅读