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