SQL 如何去除重复的字符串

create function GetDistinct(@str varchar(1000))
returns varchar(1000)
as
begin
    declare @temp varchar(1000)
    while(charindex(','+substring(@str,1,charindex(',',@str)-1)+',',','+isnull(@temp,'')+',')=0)
    begin
        set @temp=isnull(@temp+',','')+substring(@str,1,charindex(',',@str)-1)
        set @str=substring(@str,charindex(',',@str)+1,len(@str))
    end
    return @temp
end
go
 
select dbo.getdistinct('APR-11,APR12,APR06,APR-11,APR12,APR06')
--结果:
--------------------------
APR-11,APR12,APR06
 1 --直接点的
 2 declare @str varchar(8000)
 3 declare @ret varchar(8000),@return varchar(8000)
 4 
 5 select @str = 'APR-11,APR12,APR06,APR-11,APR12,APR06'
 6 
 7 select @str = @str+','
 8 
 9 while charindex(',',@str) > 0
10 begin
11     select @ret = substring(@str,1,charindex(',',@str)-1)
12     
13     select @return = isnull(@return+',','')+@ret
14 
15     select @str = replace(@str,@ret+',','')
16 end 
17 
18 select @return
19 ---------------------------
20 APR-11,APR12,APR06

 

posted on 2016-10-18 11:59  高达  阅读(550)  评论(0)    收藏  举报

导航