【发布时间】:2020-09-28 03:03:31
【问题描述】:
我有这样的数据:
- A 与 B 有关系,A 与 C 有关系
- B 与 D 和 E 有关系。
我想在 SQL Server (A, B ,C,...) 和 (B,D,E,...) 中查看组中的结果
我尝试过递归,但没有实现。
我需要在 SQL 中执行此操作。
感谢您的帮助。
【问题讨论】:
标签: sql recursion sql-server-2012
我有这样的数据:
我想在 SQL Server (A, B ,C,...) 和 (B,D,E,...) 中查看组中的结果
我尝试过递归,但没有实现。
我需要在 SQL 中执行此操作。
感谢您的帮助。
【问题讨论】:
标签: sql recursion sql-server-2012
你可以在不使用递归 cte 的情况下实现。使用string_agg 和concat 尝试以下操作。这是demo。
select
concat(columnA, ', ', string_agg(columnB, ', ')) as columnC
from myTable
group by
columnA
输出:
|columnC|
*-------*
|A, B, C|
|B, D, E|
在 SQL Server 2012 中,您可以使用 XML PATH,如下所示
select
concat(
columnA, ',',
stuff((
select ', ' + columnB
from myTable m1
where m1.columnA = m2.columnA
for xml path('')
), 1, 1, ''
)) as columnC
from myTable m2
group by
columnA
【讨论】: