问题描述
- sqlserver存储过程 分割字符串再组装
-
有三个字符串。比如。A=“440,441,442,443”,B="a,b,c,d" ,C=“1,2,3,4”.三个字符串里面的值是一一对应的。
在存储过程里面如何把这三个字符串分割之后然后组装成 440,a,1;441,b,2;442,c,3;443,d,4;
最好有一个规范的。多谢了。
解决方案
CREAT PROCEDURE [dbo].[Pro_STR]
@A nvarchar(200)='440,441,442,443',
@B nvarchar(200)='a,b,c,d',
@C nvarchar(200)='1,2,3,4'
AS
BEGIN
DECLARE @result nvarchar(4000)
DECLARE @strSQL nvarchar(4000)
set @result=''
set @A=@A+','
set @B=@B+','
set @C=@C+','
WHILE CHARINDEX(',',@A)>0
BEGIN
set @result=@result+LEFT(@A,CHARINDEX(',',@A)-1)+','+LEFT(@B,CHARINDEX(',',@B)-1)+','+LEFT(@C,CHARINDEX(',',@C)-1)+';'
SET @A=STUFF(@A,1,CHARINDEX(',',@A),'')
SET @B=STUFF(@B,1,CHARINDEX(',',@B),'')
SET @C=STUFF(@C,1,CHARINDEX(',',@C),'')
END
set @strSQL='select '''+ @result +''''
exec(@strSQL)
END
解决方案二:
这代码片怎么给切分了,你复制一下 运行一下就行
STUFF用法:
http://www.cnblogs.com/345563452/archive/2009/10/29/1592048.html
CHARINDEX用法:
http://www.cnblogs.com/beeone/p/3621743.html
希望对你有帮助
解决方案三:
用MySQL存储过程分割字符串
逗号分割字符串存储过程
时间: 2024-09-20 17:26:13