希望有人能提供帮助-我是SQL的新手(确实很不好!)
我在SQL Server 2005的表1和表2中有两个表:
表格1
COL1 COL2 1 10 2 20 3 30 4 10 4 20 5 20 6 30 7 10 7 20
表2
COL1 COL2 10 A 20 B 30 C
TABLE2中的COL2是COL2 TABLE1中数字数据的字符表示。我希望这是可以理解的?
我已经弄清楚了如何从TABLE1中选择COL1和COL2并将结果连接起来以显示此结果:
COL1 COL2Concat 1 10 2 20 3 30 4 10, 20 5 20 6 30 7 10, 20, 30
使用这个:
SELECT COL1, STUFF(( SELECT ',' + CAST(a.COL2 AS VARCHAR(255)) AS [text()] FROM TABLE1 a WHERE a.COL1 = b.COL1 ORDER BY a.COL2 FOR XML PATH('') ), 1, 1, '') AS COL2Concat FROM TABLE1 b GROUP BY COL1 ORDER BY COL1
但是现在我想尝试获得相同的结果,只是使用COL2 TABLE2中的数据…即:
COL1 COL2Concat 1 A 2 B 3 C 4 A, B 5 B 6 C 7 A, B, C
任何想法-我一直很诚实,因为我尝试修改STUFF查询,但似乎永远不会正确…
你可以尝试…
SELECT COL1, STUFF(( SELECT ',' + CAST((SELECT COL2 FROM TABLE2 WHERE TABLE2.COL1 = a.COL1) AS VARCHAR(255)) AS [text()] FROM TABLE1 a WHERE a.COL1 = b.COL1 ORDER BY a.COL2 FOR XML PATH('') ), 1, 1, '') AS COL2Concat FROM TABLE1 b GROUP BY COL1 ORDER BY COL1