MSSQL行列转换

首先我们先看下面这个表 pritice:
select * from pritice
good num house
1 7 sc1
3 2 sc1
2 4 sc1
1 2 sc3
4 50 sc2
4 7 sc1
4 6 sc3
5 6 sc2
进行(xing) 行(hang)转列操作(1):

select good
,sum(case house when 'sc1' then num else 0 end) as 'sc1'
,sum(case house when 'sc2' then num else 0 end) as 'sc2'
,sum(case house when 'sc3' then num else 0 end) as 'sc3'
from pritice group by good

分析:上面的语句首先选出 good 商品编码,然后选出各个仓库的各个商品的总数量,类似sc1仓库的1号商品数量的和这种东西,
case 判断当前仓库,then取出当前仓库数量,由于group by good 所以取出的是每个商品的数量,因为有sum函数存在,所以如果不存在num的值要赋为 0,这里选出的就是sc1仓库的各种商品数量。
进行(xing) 行(hang)转列操作(2):

select * from table_name pivot(聚合函数 for Column in(Column)) as 别名
select * from pritice pivot(max(num) for house in (sc1,sc2,sc3))u --这里的别名一定要有

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值