我是说一个字段中有相同的值 例如declare @t table(tClass nvarchar(100)) insert into @t select 'H,K,L,M,M,L,S,S,M,L,V' union select 'H,K,T,M,T,L,S,S,M,L,V' select * from @t我要得到H,K,L,M,L,S,,V H,K,T,M,L,S,M,V
CREATE FUNCTION F_DELETEDUPLICATE(@SRC VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN DECLARE @STR VARCHAR(100) DECLARE @POS INT DECLARE @S VARCHAR(1),@RESULT VARCHAR(100)SET @STR=@SRC SET @STR=REPLACE(@STR,',','') SET @RESULT='' SET @POS=1WHILE @POS<=LEN(@STR) BEGIN SET @S=SUBSTRING(@STR,@POS,1) IF CHARINDEX(@S,@RESULT)=0 SET @RESULT=@RESULT+@S SET @POS=@POS+1 END RETURN @RESULT END GOSELECT DBO.F_DELETEDUPLICATE('H,K,T,M,T,L,S,S,M,L,V' ) AS RESULTDROP FUNCTION F_DELETEDUPLICATE /* RESULT ---------------------------------------------------------------------------------------------------- HKTMLSV */
CREATE FUNCTION F_DELETEDUPLICATE(@SRC VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN DECLARE @STR VARCHAR(100) DECLARE @POS INT DECLARE @S VARCHAR(1),@RESULT VARCHAR(100)SET @STR=@SRC SET @STR=REPLACE(@STR,',','') SET @RESULT='' SET @POS=1WHILE @POS<=LEN(@STR) BEGIN SET @S=SUBSTRING(@STR,@POS,1) IF CHARINDEX(@S,@RESULT)=0 SET @RESULT=@RESULT+','+@S SET @POS=@POS+1 END RETURN STUFF(@RESULT,1,1,'') END GOdeclare @t table(tClass varchar(100)) insert into @t select 'H,K,L,M,M,L,S,S,M,L,V' union select 'H,K,T,M,T,L,S,S,M,L,V' SELECT DBO.F_DELETEDUPLICATE(tClass ) AS RESULT FROM @TDROP FUNCTION F_DELETEDUPLICATE /* RESULT ---------------------------------------------------------------------------------------------------- H,K,L,M,S,V H,K,T,M,L,S,V */
from table_name
没有理解我的意思啊
from tb
例如declare @t table(tClass nvarchar(100))
insert into @t
select 'H,K,L,M,M,L,S,S,M,L,V'
union
select 'H,K,T,M,T,L,S,S,M,L,V' select * from @t我要得到H,K,L,M,L,S,,V
H,K,T,M,L,S,M,V
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @STR VARCHAR(100)
DECLARE @POS INT
DECLARE @S VARCHAR(1),@RESULT VARCHAR(100)SET @STR=@SRC
SET @STR=REPLACE(@STR,',','')
SET @RESULT=''
SET @POS=1WHILE @POS<=LEN(@STR)
BEGIN
SET @S=SUBSTRING(@STR,@POS,1)
IF CHARINDEX(@S,@RESULT)=0
SET @RESULT=@RESULT+@S
SET @POS=@POS+1
END
RETURN @RESULT
END
GOSELECT DBO.F_DELETEDUPLICATE('H,K,T,M,T,L,S,S,M,L,V' ) AS RESULTDROP FUNCTION F_DELETEDUPLICATE
/*
RESULT
----------------------------------------------------------------------------------------------------
HKTMLSV
*/
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @STR VARCHAR(100)
DECLARE @POS INT
DECLARE @S VARCHAR(1),@RESULT VARCHAR(100)SET @STR=@SRC
SET @STR=REPLACE(@STR,',','')
SET @RESULT=''
SET @POS=1WHILE @POS<=LEN(@STR)
BEGIN
SET @S=SUBSTRING(@STR,@POS,1)
IF CHARINDEX(@S,@RESULT)=0
SET @RESULT=@RESULT+','+@S
SET @POS=@POS+1
END
RETURN STUFF(@RESULT,1,1,'')
END
GOdeclare @t table(tClass varchar(100))
insert into @t
select 'H,K,L,M,M,L,S,S,M,L,V'
union
select 'H,K,T,M,T,L,S,S,M,L,V' SELECT DBO.F_DELETEDUPLICATE(tClass ) AS RESULT FROM @TDROP FUNCTION F_DELETEDUPLICATE
/*
RESULT
----------------------------------------------------------------------------------------------------
H,K,L,M,S,V
H,K,T,M,L,S,V
*/