sql server 樹狀結構表中,獲取指定節點的所有父節點路徑
CREATE PROCEDURE [dbo].[A_P_GetParentIds]
(
@IdValue NVARCHAR(36) ,-- 子節點值
@tableName NVARCHAR(MAX) ,-- 表名
@ParentIdColumnName NVARCHAR(MAX) ,-- 父節點列名
@ChildIdColumnName NVARCHAR(MAX)-- 子節點列名
)
AS
DECLARE @sqlTemp NVARCHAR(MAX); --查詢sql
SET @sqlTemp = ' with cte_root as
(
select ' + @ParentIdColumnName + ' from ' + @tableName + ' where '
+ @ChildIdColumnName + ' = ''' + @IdValue + ''' union all
select a.' + @ParentIdColumnName + ' from ' + @tableName
+ ' a inner join cte_root b on a.' + @ChildIdColumnName + '=b.'
+ @ParentIdColumnName + ' ) ' + CHAR(10) + 'select * from cte_root ';
------返回查詢結果-----
EXEC sp_executesql @sqlTemp;
GO
CREATE PROCEDURE [dbo].[A_P_GetParentInfo]
(
@IdValue NVARCHAR(36) ,-- 子節點值
@tableName NVARCHAR(MAX) ,-- 表名
@ParentIdColumnName NVARCHAR(MAX) ,-- 父節點列名
@ChildIdColumnName NVARCHAR(MAX)-- 子節點列名
)
AS
DECLARE @sqlTemp NVARCHAR(MAX); --查詢sql
SET @sqlTemp = ' with cte_root as
(
select * from ' + @tableName + ' where '
+ @ChildIdColumnName + ' = ''' + @IdValue + ''' union all
select a.* from ' + @tableName
+ ' a inner join cte_root b on a.' + @ChildIdColumnName + '=b.'
+ @ParentIdColumnName + ' ) ' + CHAR(10) + 'select * from cte_root ';
------返回查詢結果-----
EXEC sp_executesql @sqlTemp;
GO
呼叫測試:
DECLARE @return_value int
EXEC @return_value = [dbo].[A_P_GetParentIds]
@IdValue = N'a29672f9-3d03-4cfc-9cb0-403ce729db5b',--子節點值
@tableName = N'SystemMenu',--表名
@ParentIdColumnName = N'ParentId',--父節點列名
@ChildIdColumnName = N'Id'--子節點列名
SELECT 'Return Value' = @return_value
GO
相關文章
- 資料庫——查詢樹形結構某節點的所有子節點、所有父節點資料庫
- MySQL遞迴查詢樹狀表的子節點、父節點MySql遞迴
- 【vue】在二叉樹中根據子節點找出父節點路徑Vue二叉樹
- jQuery如何獲取元素父節點和子節點jQuery
- jquery獲取指定元素的父節點程式碼例項jQuery
- jquery獲取指定節點的第一級文字節點jQuery
- JavaScript獲取父元素下子元素節點JavaScript
- Sql Server 獲取指定表、檢視結構SQLServer
- json 陣列已知父節點,求所有子節點JSON陣列
- Java中在二叉搜尋樹中查詢節點的父節點Java
- 樹,計算父節點的值
- JavaScript 獲取所有後代元素節點JavaScript
- 【高海東】SQL語句對錶中父子節點正向和反向取所有節點SQL
- MySQL實現樹狀所有子節點查詢的方法MySql
- 獲取頁面中所有元素的節點型別型別
- 替歸演算法獲取Treeview所有節點演算法View
- jquery獲取元素節點jQuery
- [1483. 樹節點的第 K 個祖先] 【路徑】
- mysql根據節點查詢所有葉節點MySql
- dom4j 根據xml節點路徑查詢節點,找到對應的目標節點下的子節點,對節點Text值進行修改XML
- 二叉樹兩個節點的公共節點二叉樹
- js刪除父元素下所有的元素節點程式碼JS
- 牛客題霸 [二叉樹中是否存在節點和為指定值的路徑] C++題解/答案二叉樹C++
- Ant Design Vue Tree 選中子節點同時半選中父級節點Vue
- 構造無限級樹並深度遍歷查詢指定節點
- 獲取當前元素在兄弟元素節點中的索引索引
- js獲取dom節點的方法有哪些JS
- jQuery獲取節點的標籤名稱jQuery
- js實現的獲取指定元素的節點封裝程式碼例項JS封裝
- Tree樹狀圖的動態增刪查改(中)新增節點
- 獲取BT節點資訊bittorrent-discovery
- 用C#讀取XML指定節點下的值C#XML
- C#不使用DataSet操作XML,XmlDocument讀寫xml所有節點及讀取xml節點的資料總結C#XML
- 節點快取的優缺點快取
- JQuery2:節點選取與節點插入jQuery
- oracle rac中讓sql語句在指定的節點執行的方法OracleSQL
- 讀取SQL Server 表結構SQLServer
- SQL Server中獲取一個資料庫的所有表的列數SQLServer資料庫