字符串拆分表问题
现有字符串:
◎a※1◎b※2◎c※3◎d※4
我想拆成这样的表:
C1 C2
a 1
b 2
c 3
d 4
如何来做?
------解决方案--------------------declare @s varchar(200)
set @s= '◎a※1◎b※2◎c※3◎d※4 '
set @s=replace(replace(@s, '◎ ', ' as C2 union all select ' ' '), '※ ', ' ' ' as C1, ')
set @s=stuff(@s,1,17, ' ')
exec(@s)
------解决方案--------------------create table #(c1 varchar(10),c2 varchar(10))
declare @sql varchar(8000),@str varchar(100)
set @str= '◎a※1◎b※2◎c※3◎d※4 '
set @sql=stuff(@str,1,1, ' ')
set @sql=replace(@sql, '◎ ', ' ' ' union all select ' ' ')
set @sql=replace(@sql, '※ ', ' ' ', ' ' ')
set @sql= 'select ' ' '+ @sql + ' ' ' '
set @sql= 'insert # '+@sql
--print @sql
exec(@sql)
select * from #
--drop table #
------解决方案--------------------declare @a nvarchar(1000)
set @a= '◎a※1◎b※2◎c※3◎d※4 '
select top 100 id=identity(int,1,1) into # from syscolumns
select C1=left(x,charindex( '※ ',x)-1),C2=right(x,len(x)-charindex( '※ ',x))
from
(
select substring(@a+ '◎ ',id+1,charindex( '◎ ',@a+ '◎ ',id+1)-id-1) x
from #
where substring(@a,id,1)= '◎ '
) y
drop table #