GetLevel (データベース エンジン)
ツリー内でのノード this の深さを表す整数を返します。
構文
-- Transact-SQL syntax
node.GetLevel ( )
-- CLR syntax
SqlInt16 GetLevel ( )
戻り値の型
**SQL Server の戻り値の型 :**smallint
**CLR の戻り値の型 :**SqlInt16
説明
1 つ以上のノードのレベルを確認するとき、または指定したレベルのメンバにノードを限定するときに使用します。階層のルートはレベル 0 です。
GetLevel は、幅優先の検索インデックスに非常に役立ちます。詳細については、「hierarchyid データ型の使用 (データベース エンジン)」を参照してください。
例
A. 階層レベルを列として返す
次の例では、まず hierarchyid のテキスト表現を取得します。次に、テーブル内のすべての行を対象に、指定した階層レベルを EmpLevel 列として取得します。
SELECT OrgNode.ToString() AS Text_OrgNode,
OrgNode.GetLevel() AS EmpLevel, *
FROM HumanResources.EmployeeDemo
B. 階層レベルのすべてのメンバを返す
次の例では、テーブル内で、階層レベル 2 にあるすべての行を取得します。
SELECT OrgNode.ToString() AS Text_OrgNode,
OrgNode.GetLevel() AS EmpLevel, *
FROM HumanResources.EmployeeDemo
WHERE OrgNode.GetLevel() = 2
C. 階層のルートを返す
次の例は、階層レベルのルートを返します。
SELECT OrgNode.ToString() AS Text_OrgNode,
OrgNode.GetLevel() AS EmpLevel, *
FROM HumanResources.EmployeeDemo
WHERE OrgNode.GetLevel() = 0
D. CLR の例
次のコード例では GetLevel() メソッドを呼び出します。
this.GetLevel()