将列数据拆分为不同的行 [英] Split the Column Data in Differnt Rows

查看:91
本文介绍了将列数据拆分为不同的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

输入表

---------



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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆