同学的原表结构如下:
表名称: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(&