更容易解释我需要用一个例子来做什么;
表看起来像这样
Col 1, Col 2
1, a
1, b
2, a
2, b
2, c
我需要一个查询来返回类似
的内容1,a,b
2,a,b,c
答案 0 :(得分:2)
你需要一行如:
UPDATE t
SET t.dupcustodians = dt.custadmin
FROM tbldoc t
INNER JOIN (SELECT t1._dupid,
(SELECT DISTINCT custadmin + ', '
FROM tbldoc t2
WHERE t2._dupid = t1._dupid
ORDER BY custadmin + ', '
FOR XML PATH('')) AS custadmin
FROM tbldoc t1
GROUP BY _dupid) AS dt
ON t._dupid = dt._dupid
;
我遇到了类似的问题,其中所有内容都在“CustAdmin”字段中有一个名称,然后它们都有可能重复的_DupID值。我希望它在新字段“DupCustodians”中列出当_DupID值从一个记录到下一个记录时相同的所有名称。因此,将这些名称与您需要的字段名称交换(当然,不要忘记更改表名称),您应该很好。
答案 1 :(得分:2)
好吧,如果您使用的是MySQL,那么您可以这样做:
SELECT Col1, GROUP_CONCAT(Col2)
FROM MyTable
GROUP BY Col1
其他没有MySQL特定GROUP_CONCAT功能的数据库可能需要更复杂的查询。