如何獲得不同的變量如何獲得不同的變量
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
如何獲得不同的變量如何獲得不同的變量
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
它可以在三個步驟
查詢鏈接做
第1步:Turning a Comma Separated string into individual rows
第2步:從上面的結果
第3步選擇Distinct
:Simulating group_concat MySQL function in Microsoft SQL Server 2005?
這是一個solvin解決方案g使用內存表中的這個問題。
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))
將其循環到一個表變量中,然後清除查詢該表變量。 – KtX2SkD
想要在表變量中取這個值 – Asad