1. Create function [dbo].[fn_Distinct](@str varchar(1000))
    2. returns varchar(1000)
    3. as
    4. BEGIN
    5. declare @ret varchar(8000),@return varchar(8000)
    6. select @str = @str+','
    7. while charindex(',',@str) > 0
    8. begin
    9. select @ret = substring(@str,1,charindex(',',@str)-1)
    10. select @return = isnull(@return+',','')+@ret
    11. select @str = replace(@str,@ret+',','')
    12. end
    13. RETURN @return
    14. END
    15. GO
    16. SELECT dbo.[fn_Distinct]('主体1,主体1,主体2')
    1. CREATE FUNCTION fn_Distinct(str varchar(1000)) RETURNS varchar(1000)
    2. BEGIN
    3. declare ret varchar(1000);
    4. declare returnstr varchar(1000);
    5. set str =concat( str,',');
    6. while locate(',',str) > 0
    7. do
    8. set ret = substring(str,1,locate(',',str)-1),
    9. returnstr=concat( returnstr,','),
    10. returnstr = concat(ifnull( returnstr,''),ret),
    11. str = replace(str,concat( ret,','),'');
    12. end while;
    13. RETURN returnstr;
    14. end