希望有人可以提供帮助 - 我是一个新手 SQL 黑客(而且确实很糟糕!)
我在 SQL Server 2005 上有两个表 TABLE 1 和 TABLE2:
TABLE1
COL1 COL2
1 10
2 20
3 30
4 10
4 20
5 20
6 30
7 10
7 20
TABLE2
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 查询,但它似乎永远不会正确......