前台返回数据格式 1,张三,10001_#_2,李四,10002_#_5,王五,10008
sql2008数据库,要插入表a,插入后数据为这样的
编号 姓名 其他编号
1 张三 10001
2 李四 10002
请问怎么把前述的字符串 拼接出来插入到表A里啊 ,谢谢,谢谢!
------解决方案--------------------
--1.函数
if exists(select * from sys.objects where name = 'f_splitSTR' and type = 'tf')
drop function dbo.f_splitSTR
go
create function dbo.f_splitSTR
(
@s varchar(8000), --要分拆的字符串
@split varchar(10) --分隔字符
)
returns @re table( --要返回的临时表
col varchar(1000) --临时表中的列
)
as
begin
declare @len int
set @len = LEN(@split) --分隔符不一定就是一个字符,可能是2个字符
while CHARINDEX(@split,@s) >0
begin
insert into @re
values(left(@s,charindex(@split,@s) - 1))
set @s = STUFF(@s,1,charindex(@split,@s) - 1 + @len ,'') --覆盖:字符串以及分隔符
end
insert into @re values(@s)
return --返回临时表
end
go
declare @res nvarchar(100)
set @res=N'1,张三,10001_#_2,李四,10002_#_5,王五,10008';
set @res = REPLACE(@res,' ',',')
select PARSENAME(REPLACE(col,',','.'),1),PARSENAME(REPLACE(col,',','.'),2),PARSENAME(REPLACE(col,',','.'),3)
from dbo.f_splitSTR(@res,'_#_') t