我有两张桌子:
表1
Key,CenterId,Value
01中心A 10
02中心B 100
03中心C 50
和
表2
Center, SubCenter, A-Field, B-Field Center A Sub 1 ... ... Center A Sub 2 Center A Sub 3 ... ...
我需要获得每个中心一行(表1中的一行)和所有子中心但没有重复行...所以我的最后结果必须是:
查询结果
Center, Value, List-of-SubCenter Center A, 10, Sub1 Sub2 Sub 3 Center B, 100, Sub4 ... Sub N
如何在Sql(特别是SQL-SERVER)中执行此操作?
谢谢
答案 0 :(得分:1)
这适用于SQL Server 2005及更高版本
SELECT t1.centerid, t1.value, LEFT(el.sublist, LEN(el.sublist)-1) AS subcenters
FROM Table1 t1
CROSS APPLY (SELECT t2.subcenter + ',' AS [text()]
FROM Table2 t2
WHERE t2.center = t1.centerid
FOR XML PATH(''))el(sublist)