有这样的数据
编号 组合
0001 02/0304/0203/01/
0002 0405/0312/43/957623/
我要得到这样的结果
0001 02
0001 0304
0001 0203
0001 01
等等类似。
不知道我讲清楚了没,在线等
编号 组合
0001 02/0304/0203/01/
0002 0405/0312/43/957623/
我要得到这样的结果
0001 02
0001 0304
0001 0203
0001 01
等等类似。
不知道我讲清楚了没,在线等
go
create table [TB] (编号 nvarchar(8),组合 nvarchar(40))
insert into [TB]
select '0001','02/0304/0203/01/' union all
select '0002','0405/0312/43/957623/'select * from [TB]
select
a.编号,b.组合
from
(select 编号,组合=convert(xml,'<root><v>'+replace(组合,'/','</v><v>')+'</v></root>') from TB)a
outer apply
(select 组合=C.v.value('.','nvarchar(100)') from a.组合.nodes('/root/v')C(v))b
/*
编号 组合
0001 02
0001 0304
0001 0203
0001 01
0001
0002 0405
0002 0312
0002 43
0002 957623
0002 */
后面再加个where条件<>''就可以了
后面这个有点看不懂
后面是针对xml文件的处理方法,lz可以参考msdn看看。
实在麻烦,lz可以使用通用的方法Select
a.编号,COl2=substring(a.组合,b.number,charindex('/',a.组合+'/',b.number)-b.number)
from
TB a join master..spt_values b
ON B.type='p' AND B.number BETWEEN 1 AND LEN(A.组合)
where
substring('/'+a.组合,b.number,1)='/'