0
「WITH」クラスを使用する代わりに、これを再編成する方法はありますか?ここでSQL WITH句
コードです:
CREATE table #TEMP
(
RowNum int identity,
ItemId int,
LevelId int,
Id int,
Depth int
)
;WITH CTEAlias
(ItemId, LevelId, Id, Existingdepth) as
(
Select ItemId, LevelId, Id, 0 as ExistingDepth
From tblNavItems
Where NavLevelId In
(Select NavLevelId
From tblNavLevels
Where SoltnId = @FromSoltnID
And NavTypeId = @NavTypeId1)
And ParentId = -1
Union All
Select tni.ItemId, tni.LevelId, tni.Id, ExistingDepth+1
From tblNavItems as tni
Join CTEAlias as ca
On tni.Id = ca.ItemId
Where tni.LevelId In
(Select NavLevelId
From tblNavLevels
Where SoltnId = @FromSoltnID
And NavTypeId = @NavTypeId1)
)
INSERT INTO #TEMP(ItemId, LevelId, Id,Depth)
Select * FROM CTEAlias Order BY Id
私はそれで句NORエイリアス "と" したくありません。 2つのテーブルを使用してこれを書き換える方法が他にある場合は教えてください。
なぜCTEを使用したくないですか? – JNK
あなたの目標は何ですか?パフォーマンス?もっときれいなコード?他に何か? – ean5533
@JNKおそらく、それらをサポートしていないSQL Serverのバージョンを使用しています。また、CTEに再帰的に参加しているので、サブクエリを使用することはできません。おそらく、代わりに一時テーブルに頼る必要があります。 – Yuck