查询以使用主键和逗号分隔结果来连接两个表

时间:2010-08-19 07:45:17

标签: sql sql-server

假设有两个表 -

T1                  T2
---             ----------
A                A  |   1
A                A  |   2
A                A  |   3

如何编写一个返回结果的查询,如下所示

Col1    Col2
----    -----
  A     1,2,3

(一排)

提前致谢

1 个答案:

答案 0 :(得分:2)

Declare @tempA Table
(Val Char(1))

DECLARE @tempB Table
(Val Char(1),
 ID INT)

 INSERT INTO @tempA
 SELECT 'A'
 UNION 
 SELECT 'A'
 UNION 
 SELECT 'A'

 INSERT INTO @tempB
 SELECT 'A',1
 UNION 
 SELECT 'A',2
 UNION 
 SELECT 'A',3


 SELECT DISTINCT Val,STUFF((SELECT ','+CONVERT(VARCHAR,ID)as 'data()'
              FROM @tempB B
              Where B.Val = A.Val
              FOR XML PATH('') ),1,1,'')
FROM @tempA A

希望这会解决。