Поделиться через


GetLevel (компонент Database Engine)

Возвращает целое число, представляющее глубину этого узла в дереве.

Синтаксис

-- Transact-SQL syntax
node.GetLevel ( ) 

-- CLR syntax
SqlInt16 GetLevel ( ) 

Тип возвращаемых данных

**Возвращаемый тип SQL Server:**smallint

**Возвращаемый тип CLR:**SqlInt16

Замечания

Используется, чтобы определить уровень одного или нескольких узлов или сопоставить узлы элементам определенного уровня. Корень иерархии — уровень 0.

GetLevel очень полезен для индексов поиска преимущественно в ширину. Дополнительные сведения см. в разделе Использование типов данных hierarchyid (компонент Database Engine).

Примеры

А. Возвращение уровня иерархии как столбца

В следующем примере возвращается текстовое представление hierarchyid, а затем уровень иерархии возвращается как столбец EmpLevel для всех строк в таблице.

SELECT OrgNode.ToString() AS Text_OrgNode, 
OrgNode.GetLevel() AS EmpLevel, *
FROM HumanResources.EmployeeDemo

Б. Возвращение всех элементов уровня иерархии

В следующем примере возвращаются все строки в таблице на уровне иерархии 2.

SELECT OrgNode.ToString() AS Text_OrgNode, 
OrgNode.GetLevel() AS EmpLevel, *
FROM HumanResources.EmployeeDemo
WHERE OrgNode.GetLevel() = 2

В. Возвращение корневого элемента иерархии

В следующем примере возвращается корневой уровень иерархии.

SELECT OrgNode.ToString() AS Text_OrgNode, 
OrgNode.GetLevel() AS EmpLevel, *
FROM HumanResources.EmployeeDemo
WHERE OrgNode.GetLevel() = 0

Г. Пример, использующий среду CLR

В следующем фрагменте кода вызывается метод GetLevel():

this.GetLevel()