第1部分:应用场景
在我们软件开发的过程中,无法避免的需要使用列转行的功能,如下图所示:
--左侧是通过以下语句查询出来的:
SELECT StripOrderNo 单号,ItemNo 行,gx01,gx02,gx03,gx04,gx05 FROM 表1
第2部分:解决方案
那我们如何通过sqlserver的t-sql语句实现上述我们想要的结果呢?将左边的表格转换为右边的表格,此时我们可以通过UNPIVOT行数进行,首先我们分析一下数据表的内容,可以得到:
所以,我们可以用下面的sql语句实现:
SELECT StripOrderNo 单号,ItemNo 行,工序,工序名 FROM 表1
UNPIVOT(工序名 FOR 工序 IN(gx01,gx02,gx03,gx04,gx05)) b
© 版权声明
THE END
暂无评论内容