sql server 查询分组后用逗号拼接字符串和拆分

1、创建表

CREATE TABLE [dbo].[m_test] (
[A] varchar(10) COLLATE Chinese_PRC_CI_AS NULL,
[B] varchar(max) COLLATE Chinese_PRC_CI_AS NULL
)
ON [PRIMARY]
TEXTIMAGE_ON [PRIMARY]
GO

ALTER TABLE [dbo].[m_test] SET (LOCK_ESCALATION = TABLE);

2、插入数据

INSERT INTO [dbo].[m_test] ([A], [B]) VALUES (N'A', N'A001')
GO

INSERT INTO [dbo].[m_test] ([A], [B]) VALUES (N'A', N'A002')
GO

INSERT INTO [dbo].[m_test] ([A], [B]) VALUES (N'A', N'A003')
GO

INSERT INTO [dbo].[m_test] ([A], [B]) VALUES (N'B', N'B001')
GO

INSERT INTO [dbo].[m_test] ([A], [B]) VALUES (N'B', N'B002')
GO

3、例子

select
a,
b=stuff((select ','+b from m_test where a=t.a for xml path('')),1,1,'')
from
m_test t

select
a,
b=stuff((select ','+b from m_test where a=t.a for xml path('')),1,1,'')
from
m_test t
group by
a;

 

原文地址:https://www.cnblogs.com/ki16/p/14511573.html