Share via


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()