table tr_sort
trs_mid      trs_text
1            晴天
2            雨天
3            小雨table a_sub
as_name
1,2,3现在要把table a_sub中as_name查询出来的结果为“晴天,雨天,小雨”这样的sql怎么写呢?谢谢!

解决方案 »

  1.   


    create function [dbo].[f_Split]
     (
     @SourceSql nvarchar(max),--源分隔字符串
     @StrSeprate varchar(10)--分隔符
     )
     returns @temp table(a nvarchar(max))
     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
    GO
      

  2.   

    然后再用这种格式 就是你要的结果了:
      select stuff((select ','+aa from b for xml path('')) ,1,1,'')