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


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

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

Синтаксис

-- Transact-SQL syntax
node.GetLevel ( ) 

-- CLR syntax
SqlInt16 GetLevel ( ) 

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

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

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

Замечания

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

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

Примеры

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

В следующем примере возвращается текстовое представление 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()

См. также

Справочник

hierarchyid (Transact-SQL)

Основные понятия

Справочник по методам типа данных hierarchyid

Иерархические данные (SQL Server)