Прежде всего: Вам уже сказали в комментариях, что это очень плохой дизайн (нарушающий 1.NF)! Если у вас есть хоть малейший шанс изменить это, вам действительно следует... Никогда не храните более одного значения в одной ячейке!
Если вам нужно придерживаться этого (или чтобы исправить этот беспорядок), вы можете сделать следующее:
Это самый простой подход, который я могу придумать: преобразовать CSV в XML и вызвать XQuery
-функцию distinct-values()
DECLARE @tbl TABLE(ColumnA VARCHAR(MAX));
INSERT INTO @tbl VALUES
('karim,karim,rahim,masud,raju,raju')
,('jon,man,jon,kamal,kamal')
,('c,abc,abc,pot');
WITH Splitted AS
(
SELECT ColumnA
,CAST('<x>' + REPLACE(ColumnA,',','</x><x>') + '</x>' AS XML) AS TheParts
FROM @tbl
)
SELECT ColumnA
,TheParts.query('distinct-values(/x/text())').value('.','varchar(250)') AS ColumnB
FROM Splitted;
Результат
ColumnA ColumnB
karim,karim,rahim,masud,raju,raju karim rahim masud raju
jon,man,jon,kamal,kamal jon man kamal
c,abc,abc,pot c abc pot
ОБНОВЛЕНИЕ Держите запятые
WITH Splitted AS
(
SELECT ColumnA
,CAST('<x>' + REPLACE(ColumnA,',','</x><x>') + '</x>' AS XML) AS TheParts
FROM @tbl
)
SELECT ColumnA
,STUFF(
(TheParts.query
('
for $x in distinct-values(/x/text())
return <x>{concat(",", $x)}</x>
').value('.','varchar(250)')),1,1,'') AS ColumnB
FROM Splitted;
Результат
ColumnB
karim,rahim,masud,raju
jon,man,kamal
c,abc,pot
person
Shnugo
schedule
19.03.2018