В приведенных ниже примерах данных я хочу разбить строку на столбец с помощью UDF.
CREATE TABLE ##temp
([date] datetime,
category varchar(3),
amount money)
insert into ##temp values ('1/1/2012', 'ABC', 1000.00)
insert into ##temp values ('2/1/2012', 'DEF', 500.00)
insert into ##temp values ('2/1/2012', 'GHI', 800.00)
insert into ##temp values ('2/10/2012', 'DEF', 700.00)
insert into ##temp values ('3/1/2012', 'ABC', 1100.00);
я создаю функцию ниже
CREATE FUNCTION dbo.Splitter(@Name NVARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @cols AS NVARCHAR(MAX)
SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(@Name)
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
RETURN @cols
END
текущий вывод
CatSplit
[ABC]
[DEF]
[GHI]
[DEF]
[ABC]
что я хочу (ожидаемый вывод)
CatSplit
[ABC],[DEF],[GHI],[DEF],[ABC]