如果给出这样的表
Group Value
Item 1 A
Item 1 B
Item 1 C
Item 1 D
Item 2 Z
Item 2 Y
Item 2 X
Item 2 W
我想在这样的表中得到一个结果
Group
Item 1 A|B|C|D
Item 2 Z|Y|X|W
现在我知道如何做一个单独的小组。
SELECT @Item1= ISNULL(@Item1+ '|', '') + CodeValue
FROM Codes
WHERE CodeType = 'Item 1'
我想我可以把它放在循环中。我的问题是有更优雅的方式吗?
答案 0 :(得分:0)
找到吼叫,希望会满足
DECLARE @tABLE TABLE(ItemName varchar(10),Code char(1))
insert into @tABLE
select 'Item 1', 'A'
union
select 'Item 1', 'B'
union
select 'Item 1', 'C'
union
select 'Item 1', 'D'
union
select 'Item 2', 'W'
union
select 'Item 2', 'X'
union
select 'Item 2', 'Y'
union
select 'Item 2', 'Z'
select distinct ItemName ,
STUFF((Select ' | '+Code
from @tABLE T1
where T1.ItemName=T2.ItemName
FOR XML PATH('')),1,2,'') from @tABLE T2
ItemName(无列名) 项目1 A | B | C | d 项目2 W | X | Y | ž