How to get distinct in a variable
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'
SELECT DISTINCT @var
How to get distinct in a variable
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'
SELECT DISTINCT @var
It can be done in three steps
Query Links to do it
Step 1: Turning a Comma Separated string into individual rows
Step 2 : Select Distinct
from above result
Step 3 : Simulating group_concat MySQL function in Microsoft SQL Server 2005?
You can find a solution here, https://blog.sqlauthority.com/2009/01/15/sql-server-remove-duplicate-entry-from-comma-delimited-string-udf/
Here is a solution for solving this problem using in-memory tables.
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))