Kis*_*jar 0 sql-server stored-procedures function
我有一个查询返回我的输出.
(结果不是所有时间都不一样,意味着它有时会给出3类,有时8类等等.)
CategoryName
Test1
Test2
Test3
Run Code Online (Sandbox Code Playgroud)
现在我希望商店程序应该以逗号分隔格式返回这些日期.例如,输出字符串应该类似于:Test1,Test2,Test3
你能告诉我怎样才能实现这个目标?
这适用于数据中的所有字符:
set nocount on;
declare @YourTable table (BirthDay datetime, PersonName varchar(20))
insert into @YourTable VALUES ('1-10-2010', 'Joe' )
insert into @YourTable VALUES ('2-10-2010', 'Bob <&>' )
insert into @YourTable VALUES ('2-10-2010', 'Alice')
set nocount off
--Concatenation with FOR XML and eleminating control/encoded character expansion "& < >"
SELECT
p1.BirthDay
,STUFF(
(SELECT
', ' + p2.PersonName
FROM @YourTable p2
WHERE p2.BirthDay=p1.BirthDay
ORDER BY p2.PersonName
FOR XML PATH(''), TYPE
).value('.','varchar(max)')
,1,2, ''
) AS PersonNames
FROM @YourTable p1
GROUP BY p1.BirthDay
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
BirthDay PersonNames
----------------------- ------------------------
2010-01-10 00:00:00.000 Joe
2010-02-10 00:00:00.000 Alice, Bob <&>
(2 row(s) affected)
Run Code Online (Sandbox Code Playgroud)