【行转列】

请问大家 ,sqlserver里行转列 可以用pivot,但是多个指标值行转列,应该怎么写的哇?

image.png

ran1025 发布于 2022-7-9 21:52 (编辑于 2022-7-10 00:17)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
zsh331Lv8专家互助
发布于2022-7-10 22:32

方法不唯一,自行选择。

其一:多个子查询pivot后通过join合并。

其二:将多个指标字段合并成一个字段,然后pivot。

——————————————————————————————————

最佳回答
0
胡歌Lv7中级互助
发布于2022-7-9 23:10(编辑于 2022-7-9 23:52)

SELECT

product ,aa , bb 

FROM

guest.tab t  

UNPIVOT (

aa FOR bb IN(

c1, c2, c3, c4

)

) t

-- c1, c2, c3, c4 对应你要转的列 , aa 、bb 是给新增的两列取的名字

  • ran1025 ran1025(提问者) 现在就是2维表,只是值有很多,已贴图,帮忙看下捏
    2022-07-09 23:27 
  • 胡歌 胡歌 回复 ran1025(提问者) 你这是要列转行吧
    2022-07-09 23:43 
  • ran1025 ran1025(提问者) 回复 胡歌 嗯嗯 ,多个列怎么转呢,不写case when 的话
    2022-07-09 23:44 
  • 胡歌 胡歌 回复 ran1025(提问者) 你看下
    2022-07-09 23:52 
  • ran1025 ran1025(提问者) 回复 胡歌 那我理解错你的意思了。其实我是要用pivot行转列。只是目前的教程我看都是针对一个指标,想请问针对2个指标这种怎么做,更新问题了~~
    2022-07-10 00:17 
最佳回答
0
我在等风也等你Lv6初级互助
发布于2022-7-10 02:58

用group by做分组,然后用case when展示值,select 人员,case when 产品=A then 发货 end 产品a发货, case when 产品=b then 发货 end 产品b发货,case when 用量=A then  end 产品a用量,case when 用量=b then 发货 end 产品b用量  from 表 group by 产品

  • 4关注人数
  • 726浏览人数
  • 最后回答于:2022-7-10 22:32
    请选择关闭问题的原因
    确定 取消
    返回顶部