-2

我有一个表说 2 列的 clientDetailsClientID和它们BranchCode在单独的列中关联。我需要一个表,该表在一列中具有与该表不同的分支,并且与该分支相关联的所有客户端ID在另一列中以“,”分隔。例如>表1:

Branch | ClientIDs

B001   | CLI001

B001   | CLI002

B001   | CLI003

需要的结果:

Branch | ClientIDs

B001   | CLI001,CLI002,CLI003 

由于记录数非常大,因此获取此数据的最佳优化方式可能是什么。我需要这些列来绑定获胜表单的 2 个组合框。

问候, 阿希什

4

2 回答 2

3

在 SQL Server 2008 中,

SELECT BRANCH, 
       Stuff((SELECT ',' + CLIENTIDS 
              FROM   CLIENTDETAILS a 
              WHERE  a.BRANCH = t.BRANCH 
              FOR xml path('')), 1, 1, '') AS ClientId 
FROM   CLIENTDETAILS t 
GROUP  BY BRANCH 

SQL 小提琴演示

于 2013-07-31T06:32:09.850 回答
3

您可能正在寻找Group_concat

SELECT BRANCH, 
       Group_concat(clientids) 
FROM   TABLE 
GROUP  BY BRANCH; 

小提琴

于 2013-07-31T06:28:43.110 回答