IsDescendantOf (Database Engine)
適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體
若 this 為父代的子系,便會傳回 true。
Syntax
-- Transact-SQL syntax
child. IsDescendantOf ( parent )
-- CLR syntax
SqlHierarchyId IsDescendantOf (SqlHierarchyId parent )
注意
若要檢視 SQL Server 2014 (12.x) 和舊版的 Transact-SQL 語法,請參閱 舊版檔。
引數
parent
應執行 IsDescendantOf 測試的 hierarchyid 節點。
傳回型別
SQL Server 傳回型別:bit
CLR 傳回型別:SqlBoolean
備註
針對位於父系之子樹中的所有節點傳回 true,而針對所有其他節點傳回 false。
父系會被視為自己的下階。
範例
A. 在 WHERE 子句中使用 IsDescendantOf
下列範例會傳回經理以及向經理提出報告的員工:
DECLARE @Manager hierarchyid
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\dylan0'
SELECT * FROM HumanResources.EmployeeDemo
WHERE OrgNode.IsDescendantOf(@Manager) = 1
B. 使用 IsDescendantOf 來評估關聯性
下列程式碼會宣告並填入三個變數。 然後,它會評估階層式關聯性,並且根據比較,傳回兩個列印結果的其中之一:
DECLARE @Manager hierarchyid, @Employee hierarchyid, @LoginID nvarchar(256)
SELECT @Manager = OrgNode FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\terri0' ;
SELECT @Employee = OrgNode, @LoginID = LoginID FROM HumanResources.EmployeeDemo
WHERE LoginID = 'adventure-works\rob0'
IF @Employee.IsDescendantOf(@Manager) = 1
BEGIN
PRINT 'LoginID ' + @LoginID + ' is a subordinate of the selected Manager.'
END
ELSE
BEGIN
PRINT 'LoginID ' + @LoginID + ' is not a subordinate of the selected Manager.' ;
END
C. 呼叫 Common Language Runtime 方法
下列程式碼片段會呼叫 IsDescendantOf()
方法。
this.IsDescendantOf(Parent)
另請參閱
Hierarchyid 資料類型方法參考
階層式資料 (SQL Server)
hierarchyid (Transact-SQL)
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應