sql - 在 SQL 中创建递归查询
问题描述
我有这样的数据:
- A 与 B 有关系,A 与 C 有关系
- B 人与 D 和 E 有关系。
我想在 SQL Server (A, B ,C,...) 和 (B,D,E,...) 中查看组中的结果
我尝试过寻找递归但没有实现它。
我需要在 SQL 中执行此操作。
谢谢您的帮助 。
解决方案
您可以在不使用递归 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
推荐阅读
- javascript - HTML 表单 onSubmit 被绕过
- javascript - 使用 JQuery 使用依赖的 JSON 文件动态填充下拉列表
- windows - lua io.popen 运行程序,路径中有空格
- c - 读取,fread 部分读取
- python - 检查文件行是否以字符开头
- bash - 如何调用awk来处理/var/log/wtmp?
- r - 什么 R 对象可以保存变量,以便我可以迭代该对象?
- android - 具有在线数据的最简单的应用程序,(android)
- javascript - Returning an object in an function expression - is null
- excel - 使用 2 个条件创建 vlookup 或索引匹配