SQL Server-将多个角色合并为一个

时间:2019-07-12 22:50:32

标签: sql-server

我想将每个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 

感谢您的帮助

1 个答案:

答案 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