22,302
社区成员




CREATE TABLE [dbo].[Table_2](
[b1] [nvarchar](50) NULL,
[b2] [nvarchar](50) NULL,
[b3] [nvarchar](50) NULL
) ON [PRIMARY]
GO
select* from [Table_2]
--(3 行受影响)
--a1 20 a3
--a1 20 a3
--a1 42 a3
go
SELECT B.b1,LEFT(newb2,LEN(newb2)-1) as newbb2,B.b3 FROM (
SELECT b1,b3,
(SELECT b2+',' FROM Table_2
WHERE b1=A.b1 and b3 = A.b3
FOR XML PATH('')) AS newb2
FROM Table_2 A
GROUP BY b1,b3
) B
--(1 行受影响)
--a1 20,20,42 a3
CREATE TABLE [dbo].[Table_2](
[b1] [nvarchar](50) NULL,
[b2] [nvarchar](50) NULL,
[b3] [nvarchar](50) NULL
) ON [PRIMARY]
go
insert into [Table_2]
select 'a1','20','a3' union all
select 'a1','30','a3' union all
select 'a1','40','a3'
GO
select* from [Table_2]
go
select b1,b3,stuff((select ','+ b2 from [Table_2] a where a.b1 = b.b1 and a.b3 = b.b3 for xml path('')),1,1,'')b2 from
[Table_2] b
group by b1,b3