如何在SQL Server中使用UNPIVOT转换StoreDetails表数据
使用UNPIVOT实现行转列的解决方案
没问题,这正是UNPIVOT的典型应用场景!我直接给你对应的SQL语句,再拆解下逻辑:
SELECT Store, Week, xCount FROM StoreDetails UNPIVOT ( xCount FOR Week IN ([1], [2], [3]) ) AS UnpivotResult ORDER BY Week, Store;
逻辑拆解:
- SELECT子句:直接指定我们最终需要的三个字段
Store、Week、xCount - UNPIVOT核心部分:
xCount:用来接收原表中列1、2、3对应的值的字段名FOR Week IN ([1], [2], [3]):把原表的列名1、2、3转换成Week字段的取值,注意数字列名需要用方括号[]包裹,避免SQL语法报错
- ORDER BY:用来让结果和你期望的顺序完全一致,先按周数排序,再按门店编号排序
内容的提问来源于stack exchange,提问作者Elby Joy
相关产品推荐
相关产品推荐

