部门表递归查询

 
GO
 
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-----------------------------------------------------------------------
 --
-- 摘 要: 当前代理商所有ID关联信息(返回:ID,PID,Name,HasChild)
-----------------------------------------------------------------------

ALTER PROCEDURE [dbo].[Sys_BaseAllInstitution]
(
@InStitutionID INT
)
AS
---- 关闭记数器 ----
SET NOCOUNT ON
; with I(ID,PID,NAME,HasChild) as(
SELECT AA.[InstitutionID] AS ID,AA.[ParentInstitutionID] AS PID ,AA.[InstitutionName] AS NAME,AA.[HasChild] FROM [Sys_InstitutionTB] AA WHERE AA.[InstitutionID]=@InStitutionID
UNION ALL
SELECT A.[InstitutionID] AS ID,A.[ParentInstitutionID] AS PID,A.[InstitutionName] AS NAME,A.[HasChild] FROM [Sys_InstitutionTB] A WHERE A.[ParentInstitutionID]=@InStitutionID
UNION ALL
SELECT B.[InstitutionID] AS ID,B.[ParentInstitutionID] AS PID,B.[InstitutionName] AS NAME,B.[HasChild] FROM I,[Sys_InstitutionTB] B
WHERE B.[ParentInstitutionID]=I.[ID]
)

SELECT ID,PID,Name,HasChild FROM [I]


---- 恢复记数器 ----
SET NOCOUNT OFF

---- 返回 ----
RETURN

转载于:https://www.cnblogs.com/xmyy/articles/3681199.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的递归查询是指在一个数据结构中通过递归的方式进行查找操作。递归查询通常用于树形结构或者图形结构中,可以方便地查找某个节点或者路径。 在Java中,递归查询的实现通常需要定义一个递归函数,该函数会在每一次递归调用中对当前节点进行判断,并根据需要继续递归调用子节点。以下是一个简单的示例代码: ```java public class RecursiveSearch { public static boolean search(Node node, int target) { // 判断当前节点是否为空 if (node == null) { return false; } // 判断当前节点是否为目标节点 if (node.value == target) { return true; } // 递归调用左子节点和右子节点 boolean leftResult = search(node.left, target); boolean rightResult = search(node.right, target); // 返回左子节点和右子节点的查询结果 return leftResult || rightResult; } public static void main(String[] args) { // 创建一个二叉树 Node root = new Node(1); root.left = new Node(2); root.right = new Node(3); root.left.left = new Node(4); root.left.right = new Node(5); // 在二叉树中查找值为3的节点 boolean result = search(root, 3); System.out.println("查询结果:" + result); } } class Node { int value; Node left; Node right; public Node(int value) { this.value = value; } } ``` 在上述示例中,我们定义了一个递归函数`search`,该函数接收一个节点和目标值作为参数。在每一次递归调用中,我们首先判断当前节点是否为空,如果为空则返回false;然后判断当前节点是否为目标节点,如果是则返回true;最后递归调用左子节点和右子节点,并返回左子节点和右子节点的查询结果。 相关问题: 1. 什么是递归查询? 2. 在Java中如何实现递归查询? 3. 递归查询常用于哪些数据结构中? 4. 递归查询有什么优缺点?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值