我想将每个ID的多行合并为一行,但是我不能使用FOR XML PATH('')
,因为我想添加一个工具提示'
'。结果将用在悬停框中,这就是为什么我需要工具提示的原因。
我尝试过FOR XML PATH('')
,但这对于我在其中使用结果的目的来说是行不通的。
原始表
ID Name
---------------
1 One_A
2 Two_A
2 Two_B
3 Three_A
3 Three_B
3 Three_C
所需的输出结果:
ID Summary
--------------------------------------------------
1 One_A
2 Two_A 
 Two_B 
3 Three_A 
 Three_B 
 Three_C 
感谢您的帮助
答案 0 :(得分:1)
不清楚,为什么在2和3上都带有尾随
,而在1上却没有
我怀疑您错过了TYPE
此外,在示例中,我们有Order By ID
。您可能需要 TRUE 序列键,否则可能无法对订单进行GTD验证
示例
Declare @YourTable Table ([ID] varchar(50),[Name] varchar(50))
Insert Into @YourTable Values
(1,'One_A')
,(2,'Two_A')
,(2,'Two_B')
,(3,'Three_A')
,(3,'Three_B')
,(3,'Three_C')
Select A.ID
,Summary = Stuff((Select ' 
 ' +[Name]
From @YourTable
Where ID=A.ID
Order by ID
For XML Path(''),TYPE).value('(./text())[1]','varchar(max)')
,1,8,'')
From @YourTable A
Group By ID
返回
ID Summary
1 One_A
2 Two_A 
 Two_B
3 Three_A 
 Three_B 
 Three_C