蛋疼的IT
2016-01-06 10:23
采纳率: 100%
浏览 1.8k

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;
最好有一个规范的。多谢了。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • HyperMa0 2016-01-07 01:34
    已采纳

    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

    
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • HyperMa0 2016-01-07 01:38

    这代码片怎么给切分了,你复制一下 运行一下就行

    STUFF用法:
    http://www.cnblogs.com/345563452/archive/2009/10/29/1592048.html

    CHARINDEX用法:
    http://www.cnblogs.com/beeone/p/3621743.html

    希望对你有帮助

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题