1
CTE로 재귀를 수행하고 재귀가 서브 쿼리를 수행하는 데 사용할 수 있도록 변수를 증가시키려는 다음 코드가 있습니다.SQL Server 2008에서 CTE 재귀 내에서 변수를 증가시킬 수있는 방법
WITH cte as
(
select @layer as layers,
case when exists(select * from #table where [email protected] and string in ('abc','xyz)) then 10 else 0 end
union all
select layers + 1, total
from cte
where layers + 1<4 -- 4 is a max number that is unknown and given by the user
)select * from cte
#table는 다음과 같은 구조를 가지고 있지만, 데이터 량은 "ABC"또는 "XYZ"중 하나를 갖는 경우, 윌의 포인트를 가지며, 따라서 계층 1에서
string layer
abc 1
xyz 1
abc 2
xyz 2
동적 10 일 때, 레이어 2에서 사용자가 지정한 최대 레이어까지 동일한 작업이 수행됩니다. 재귀에서 포인트와 해당 레벨을 얻고 싶습니다. while 루프와 커서는 금지되어 있습니다. 재귀에서 @layer를 증가시키는 데 문제가 있습니다. 어떠한 제안? 감사합니다
대단히 감사합니다! 그것은 작동합니다! – swordgit
땀 없음 @swordgit – scsimon