首页 > 解决方案 > 在 SQL 中创建递归查询

问题描述

我有这样的数据:

在此处输入图像描述

我想在 SQL Server (A, B ,C,...) 和 (B,D,E,...) 中查看组中的结果

在此处输入图像描述

我尝试过寻找递归但没有实现它。

我需要在 SQL 中执行此操作。

谢谢您的帮助 。

标签: sqlrecursionsql-server-2012

解决方案


您可以在不使用递归 cte 的情况下实现。string_agg使用and尝试以下操作concat。这是演示

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

推荐阅读