一个字段的值,是有逗号隔开的,要求把逗号之间的分割开来。
比如 “上海,北京,大连,杭州”转换为上海
北京
大连
杭州

解决方案 »

  1.   


    declare @str varchar(8000) set @str = 'a1,b1,c2,d1,e3,f5' set @str =  'select  name='''+replace(@str,',',''''+' union all select ''')+'''' 
    set @str='select id=identity(int,1,1),name into #temp from ('+@str+') a select * from #temp drop table #temp'exec(@str)
      

  2.   

    http://blog.csdn.net/szstephenzhou/article/details/7074312
      

  3.   


    declare @str varchar(8000) set @str = '上海,北京,大连,杭州' set @str =  'select  name='''+replace(@str,',',''''+' union all select ''')+'''' 
    set @str='select id=identity(int,1,1),name into #temp from ('+@str+') a select * from #temp drop table #temp'exec(@str)/*-----
    1 上海
    2 北京
    3 大连
    4 杭州(4 行受影响)(4 行受影响)
      

  4.   

    CREATE   function   [dbo].[f_splitstr]
     (@SourceSql   varchar(8000),
     @StrSeprate   varchar(100))
     returns   @temprt   table(F1   varchar(1000))     
     as       
     begin     
     declare   @ch   as   varchar(100) 
     declare @temp   table(F1   varchar(1000))     
     set   @SourceSql=@SourceSql+@StrSeprate       
     while(@SourceSql<>'')                     
     begin                     
     set   @ch=left(@SourceSql,charindex(';',@SourceSql,1)-1)     
     insert   @temp   values(@ch)     
     set   @SourceSql=stuff(@SourceSql,1,charindex(';',@SourceSql,1),'') 
     end
     insert into @temprt
     select * from @temp order by F1
     return
     end  
      

  5.   


    @SourceSql 这个参数是什么
      

  6.   

    SELECT * from [dbo].[f_splitstr]('上海,北京,大连,杭州',',')CREATE function [dbo].[f_splitstr]
     (@SourceSql varchar(8000),
     @StrSeprate varchar(100))
     returns @temprt table(F1 varchar(1000))   
     as   
     begin   
    declare @ch as varchar(100)  
    declare @temp table(F1 varchar(1000))   
    set @SourceSql=@SourceSql+@StrSeprate   
    while(@SourceSql<>'')   
    begin   
    set @ch=left(@SourceSql,charindex(',',@SourceSql,1)-1)   
    insert @temp values(@ch)   
    set @SourceSql=stuff(@SourceSql,1,charindex(',',@SourceSql,1),'')  
    end
    insert into @temprt
    select * from @temp order by F1
    return
    end