将列数据拆分为不同的行 [英] Split the Column Data in Differnt Rows
本文介绍了将列数据拆分为不同的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
输入表
---------
ID N1 N2 N3 N4
1 abcd
2 xyz NULL
3 mn NULL NULL
输出
-------
身份证名称
1 a
1 b
1 c
1 d
2 x
2 y
2 z
3 m
3 n
解决方案
试试这个!..
创建 表 #tbl_split(id int identity ( 1 , 1 ),N1 varchar ( 100 ),N2 varchar ( 100 ),N3 varchar ( 100 ),N4 varchar ( 100 ))
插入 进入 #tbl_split 值(' a',' b',' c',' d')
insert into #tbl_split values (' x',' y',' z',' ')
插入 进入 #tbl_split 值(' m',' n' ,' ',' ')
cte as
(
选择 unpvt.id,unpvt.value 来自 #tbl_split
unpivot( 属性 (N1,N2,N3,N4) ))unpvt)
选择 id,值来自 cte where value!= ' '
使用unpivot功能回覆。查看此链接
http://blog.jontav.com/post/8344518585/convert-rows-to-columns-columns-to-rows-in-sql [ ^ ]
你可以去Unpivoting来实现解决方案。
如需了解一些细节,请点击链接:
透视和不透视 < br $> b $ b
希望有所帮助:)
Input Table
---------
ID N1 N2 N3 N4
1 a b c d
2 x y z NULL
3 m n NULL NULL
Output
-------
ID Name
1 a
1 b
1 c
1 d
2 x
2 y
2 z
3 m
3 n
解决方案
Try this !..
create table #tbl_split (id int identity(1,1),N1 varchar(100),N2 varchar(100),N3 varchar(100),N4 varchar(100)) insert into #tbl_split values('a','b','c','d') insert into #tbl_split values('x','y','z','') insert into #tbl_split values('m','n','','') with cte as ( select unpvt.id,unpvt.value from #tbl_split unpivot (value for attribute in (N1,N2,N3,N4))unpvt) select id,value from cte where value!=''
Use unpivot feature. Check this link
http://blog.jontav.com/post/8344518585/convert-rows-to-columns-columns-to-rows-in-sql[^]
You can go for Unpivoting to achieve solution.
For some detail understanding follow the link:
Pivoting and Unpivoting
Hope it helps :)
这篇关于将列数据拆分为不同的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文