sqlserver 和oracle unpivot列转行同时需要行转列,效果对比

本文介绍了如何在SQLServer中使用UNPIVOT和PIVOT操作将列转换为行,并展示了与Oracle操作的对比。通过示例代码解释了UNPIVOT的语法,演示了从8列到32行的数据转换过程,并预告了Oracle操作的不同之处。
摘要由CSDN通过智能技术生成

同学的原表结构如下:
表名称:JIANGLING_INTERSECT_TURN
在这里插入图片描述
需要转换的效果如下:
在这里插入图片描述
思路分析

  • 同学想要的效果,第一个需要将列标题beta_l_n,beta_r_n,beta_l_e,beta_r_e,beta_l_w,beta_r_w,beta_l_s,beta_r_s转换为行值,所以需要unpivot 操作

  • 第二需要将time_during对应的行值属性进行行转列操作,故需要再次pivot 操作

  • 上篇文章已经讲了pivot操作,这里不再赘述mssqlserver中的关于pivot 的语法讲解

  • 主要介绍unpivot 操作

  • unpivot 语法如下UNPIVOT函数的格式如下:

  • UNPIVOT ([转换为行的列值在转换后对应的列名] for [转换为行的列名在转换后对应的列名] in
    ([转换为行的列1],[转换为行的列2],[转换为行的列3],…[转换为行的列N]))

  • [转换为行的列值在转换后对应的列名]这个是进行列转行的列其数据值在转换为行后的列名称

  • [转换为行的列名在转换后对应的列名]这个是进行列转行的列其列名在转换为行后的列名称 [转换为行的列]这个是声明哪些列要进行列转行

测试代码如下

if object_id(&
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值