sql有类似于Split功能的函数吗?若有一数组,
declare @str varchar(500)
set @str='1,5,9,6,10'
有没有函数能把@str分开

解决方案 »

  1.   

    http://singlepine.cnblogs.com/articles/281759.html
      

  2.   

    SQL里没有,考虑一下自已写来实现啦!
      

  3.   

    CREATE function My_split(@aString varchar(8000),@pattern varchar(10))
    returns @temp table([Sid]  [int] IDENTITY (1, 1) NOT NULL ,Myvalues varchar(100))
    --实现split功能的函数
    --说明:@aString,字符串,如“27,28,29”;@pattern,分隔标志,如“ ,”
    as 
    begin
        declare @i int
        set @aString=rtrim(ltrim(@aString))
        set @i=charindex(@pattern,@aString)
        while @i>=1
        begin
            insert @temp values(left(@aString,@i-1))
            set @aString=substring(@aString,@i+1,len(@aString)-@i)
            set @i=charindex(@pattern,@aString)
        end
        if @aString<>'' 
           insert @temp values(@aString)
        return 
    end 
      

  4.   

    使用
    @ID='1,2,3,4,5,6,7,8,9'
    delete from Article where ID in (select Myvalues FROM my_split(@ID, ','))