这是使用内存表解决此问题的解决方案。
DECLARE @var NVARCHAR(500)
SELECT @var = 'EQUITY,EQUITY,EQUITY,EQUITY,EQUITY,EQUITY,EQUITY,DEBT,DEBT,DEBT,DEBT,DEBT,DEBT,DEBT,DEBT,DEBT,DEBT,DEBT,DEBT'
DECLARE @tempTable TABLE (items NVARCHAR(500))
DECLARE @distinctTable TABLE (items NVARCHAR(500))
DECLARE @delimiter CHAR(1) = ',' --- Specify the delimiter
DECLARE @idx INT
DECLARE @section NVARCHAR(500)
DECLARE @ouput NVARCHAR(500)
SELECT @idx = 1
IF LEN(@var)<1 OR @var IS NULL RETURN
WHILE @idx!= 0
BEGIN
SET @idx = CHARINDEX(@delimiter,@var)
IF @idx!=0
SET @section = LEFT(@var,@idx - 1)
ELSE
SET @section = @var
IF(LEN(@section)>0)
INSERT INTO @tempTable(Items) VALUES(@section)
SET @var = RIGHT(@var,LEN(@var) - @idx)
IF LEN(@var) = 0 BREAK
END
INSERT @distinctTable (items)
SELECT DISTINCT * FROM @tempTable
SET @ouput = ''
SELECT @ouput = @ouput + items + @delimiter FROM @distinctTable
SELECT SUBSTRING(@ouput, 0, LEN(@ouput))