传进的一个字符串参数 其中字符串用逗号分隔  我想把字符串拆分放到数组中  然后在对数组中的每项做处理
存储过程怎么写的?? 

解决方案 »

  1.   

    MSSQL中没有数组,不过你可以用表代替
      

  2.   

    这样就好:alter procedure Proc_Splitchar (@AllChar varchar(8000))
    as
    declare @FirstChar varchar(50)
    declare @FirstPoint int
    declare @lenth int 
    begin
    set @lenth=len(@AllChar)
    create  table #Temp_String(FID int identity,Content varchar(50))
    set @FirstPoint=charindex(',',@AllChar)while( @FirstPoint>0)
    begin
    set @FirstChar=substring(@AllChar,0,@FirstPoint)
    insert into #Temp_String(Content) values (@FirstChar)
    set @AllChar=substring(@AllChar,@FirstPoint+1,@lenth)
    set @FirstPoint=charindex(',',@AllChar)
    end
    insert into #Temp_String(Content) values (@AllChar) 
    select Content from #Temp_String
    end
    go 
    exec Proc_Splitchar '1,2,3,5,2'-----
    Content1
    2
    3
    5
    2
      

  3.   

    T-SQL中没有数组.
    你可以在数据库中建一个有key 和 Value 的Hash表.处理数据.
      

  4.   

    sql server中是没有数组的,如果需要可以如三楼所说用一个hashtable代替,
    但一般如下一个循环即可:
    WHILE CHARINDEX(',',@s)>0
    begin
    --LEFT(@s,CHARINDEX(',',@s)-1) 对这一块操作就是了!
    SET @s=STUFF(@s,1,CHARINDEX(',',@s),'')
    end