Inicio > Transact-SQL > Eliminar entradas duplicadas de una cadena delimitado por comas

Eliminar entradas duplicadas de una cadena delimitado por comas


  Creremos una función que la llamaremos EndtradasDuplicadas.

CREATE FUNCTION dbo.EntradasDuplicadas
(
@List VARCHAR(MAX),
@Delim CHAR
)
RETURNS
VARCHAR
(MAX)
AS
BEGIN
 DECLARE
@ParsedList TABLE(Item VARCHAR(MAX))
 DECLARE @list1 VARCHAR(MAX), @Pos INT, @rList VARCHAR(MAX)
 SET @List = LTRIM(RTRIM(@List)) + @Delim
 SET @Pos = CHARINDEX(@Delim, @List, 1)

 WHILE @Pos > 0
 BEGIN
  SET @list1 = LTRIM(RTRIM(LEFT(@List, @Pos – 1)))
  IF @list1 <> ” INSERT INTO @ParsedList VALUES (CAST(@list1 AS VARCHAR(MAX)))
  SET @List = SUBSTRING(@List, @Pos+1, LEN(@List))
  SET @Pos = CHARINDEX(@Delim, @List, 1)
 END

 SELECT @rList = COALESCE(@rList+’,’,”) + item
 FROM (SELECT DISTINCT Item FROM @ParsedList) t
 RETURN @rList
END
GO

SELECT dbo.EntradasDuplicadas(‘42,34,45,34,34,1456,aaa,b,ccc,aaa’,’,’) EntradasDuplicadas
GO

Categorías:Transact-SQL
  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: