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