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


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

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

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

Синтаксис

-- Transact-SQL syntax  
node.GetLevel ( )   
-- CLR syntax  
SqlInt16 GetLevel ( )   

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

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

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

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

Замечания

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

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

Примеры

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

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

См. также

Справочник по методам типа данных hierarchyid
Иерархические данные (SQL Server)
hierarchyid (Transact-SQL)