它更容易解释我需要使用示例进行的操作;SQL:使用第二列中的所有值从第一列中提取不同的值
表看起来像这样
Col 1, Col 2
1, a
1, b
2, a
2, b
2, c
我需要一个查询返回的东西像
1,a,b
2,a,b,c
它更容易解释我需要使用示例进行的操作;SQL:使用第二列中的所有值从第一列中提取不同的值
表看起来像这样
Col 1, Col 2
1, a
1, b
2, a
2, b
2, c
我需要一个查询返回的东西像
1,a,b
2,a,b,c
你会希望有一个线,如:
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值从一个记录到下一个记录时的名称。因此,将这些名称与需要的字段名称交换(并且不要忘记更改表名称,当然),并且您应该很好。
好吧,如果你正在使用MySQL,那么你可以这样做:没有MySQL的具体GROUP_CONCAT功能可能需要更复杂的查询
SELECT Col1, GROUP_CONCAT(Col2)
FROM MyTable
GROUP BY Col1
其他数据库。
您正在使用哪些DBMS? – 2012-01-11 17:52:43
什么都没有,我真的不知道从哪里开始,也没有运气搜索谷歌找到一个地方开始 – user1143778 2012-01-11 17:54:34
在你的情况,解决方案可能会有很大的不同,这取决于你有哪些数据库:MySQL,PostgreSQL,Oracle,SQL Server等等 – 2012-01-11 19:22:07