SQL Server中的递归查询
发布时间:2020-12-12 16:11:52 所属栏目:MsSql教程 来源:网络整理
导读:我有一个具有以下结构的表 表名:比赛 这基本上存储哪个产品是匹配哪个产品.我需要处理这个表 并存储在如下的组表中. 表名:组 group_ID存储形成组的Product_IDS的MIN Product_ID.我们来举个例子 如果A匹配B,B匹配C,那么三行应以格式(A,A),(A,B),C) 我已经尝
我有一个具有以下结构的表
表名:比赛 这基本上存储哪个产品是匹配哪个产品.我需要处理这个表 表名:组 group_ID存储形成组的Product_IDS的MIN Product_ID.我们来举个例子 如果A匹配B,B匹配C,那么三行应以格式(A,A),(A,B),C) 我已经尝试寻找共同的相关子查询和CTE,但没有得到这个实现. 我需要在SQL中这样做. 谢谢您的帮助 . 解决方法尝试这个:;WITH CTE AS ( SELECT DISTINCT M1.Product_ID Group_ID,M1.Product_ID FROM matches M1 LEFT JOIN matches M2 ON M1.Product_Id = M2.matching_Product_Id WHERE M2.matching_Product_Id IS NULL UNION ALL SELECT C.Group_ID,M.matching_Product_Id FROM CTE C JOIN matches M ON C.Product_ID = M.Product_ID ) SELECT * FROM CTE ORDER BY Group_ID 您可以使用OPTION(MAXRECURSION n)来控制递归深度. SQL FIDDLE DEMO (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |