http://search.csdn.net/Expert/topic/2440/2440306.xml?temp=.2055323

解决方案 »

  1.   

    charIndex(),union
    学会这两个关键词,应该可以做到的吧。
      

  2.   

    使用T-SQL实现的思路:1.把所有的","replace掉,然后和原来字符串的len相减,得到","的个数.
    2.使用循环.
    3.charindex得到每一个","在字符串的位置.使用substring获得字符串,然后使用sql语句插入到新表中.总结思路:循环 加 字符串处理
      

  3.   

    下面的函数转自dev-club.com的数据库版面:
    CREATE function f_split
    (
    @SourceSql varchar(8000),
    @StrSeprate varchar(10))
    returns @temp table(a varchar(100)
    )
    --实现split功能 的函数
    --date    :2003-10-14
    --调用方法: select * from dbo.f_split('0:418001:418002:418002',':')
    as 
    begin
        declare @i int
        set @SourceSql=rtrim(ltrim(@SourceSql))
        set @i=charindex(@StrSeprate,@SourceSql)
        while @i>=1
        begin
            insert @temp values(left(@SourceSql,@i-1))
            set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
            set @i=charindex(@StrSeprate,@SourceSql)
        end
        if @SourceSql<>'' 
           insert @temp values(@SourceSql)
        return 
    end使用方法:
    declare @str varchar(4000)
    select @str =  col2 from mytable
    select (select col1 from mytable) as a,* from dbo.f_split(@str,',')给分吧,呵呵!