2011-06-21 31 views
2

データ型hierarchyidを使用してメニューを作成しようとしています。SQL Server hierarchyidを使用したメニュー階層のリスト表示

私はルートノードと現在選択されているノードを持っています。ルートと選択されたノードの間に関係するすべての要素の一覧と兄弟のリストが必要になります。

私は、SQLクエリに

DECLARE @rootNode hierarchyid, @selectedNode hierarchyid 

SELECT @rootNode = MenuNode FROM CMS_Menu WHERE MenuItemID = 3; 

SELECT @selectedNode = MenuNode FROM CMS_Menu WHERE MenuItemID =15; 

SELECT CMS_Menu.MenuNode 
FROM CMS_Menu 
WHERE @selectedNode.IsDescendantOf(MenuNode) = 1 /*all related elements*/ 
AND MenuNode.GetLevel() >= @rootNode.GetLevel() /*nothing below root*/ 

を、以下のすべての関連要素は今、私は上記のクエリでは、行ごとに結果= MenuNode.GetAncestor(1)ような何かをする必要があります。

誰かがこれをSQLクエリで取得する方法を知っていますか?

ありがとう:)私は質問を理解していますが、WHERE句で、次のような何かを行うことができませんでした

答えて

0

全くわからない:

WHERE @selectedNode.IsDescendantOf(MenuNode.GetAncestor(1)) = 1 

トム

+0

は、トムをありがとう!それはまさに私が探していたものです。 –

関連する問題