GetLevel (データベース エンジン)
ツリー内でのノード this の深さを表す整数を返します。
構文
-- Transact-SQL syntax
node.GetLevel ( )
-- CLR syntax
SqlInt16 GetLevel ( )
戻り値の型
SQL Server の戻り値の型 : smallint
CLR の戻り値の型 : SqlInt16
説明
1 つ以上のノードのレベルを確認するとき、または指定したレベルのメンバーにノードを限定するときに使用します。 階層のルートはレベル 0 です。
GetLevel は、幅優先の検索インデックスに非常に役立ちます。 詳細については、「階層データ (SQL Server)」を参照してください。
使用例
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()