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