查找担保圈-step1-担保圈表函数
USE [test];
GO
/****** Object: UserDefinedFunction [dbo].[f_findrecycle] Script Date: 2019/7/8 14:37:08 ******/
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
ALTER FUNCTION [dbo].[f_findrecycle]
(
@cname NVARCHAR(100), --起点
@nlevel INT --递归的层数
)
RETURNS TABLE
AS
RETURN
(
WITH cte_A (kmmc, bzrmc, isrecycle, full_path, nlevel)
AS (SELECT [KHMC],
[BZRMC],
0 AS isrecycle,
CAST(KHMC + '<' + BZRMC AS NVARCHAR(MAX)) AS full_path,
1 AS nlevel
FROM [dbo].[dbgx]
WHERE KHMC = @cname
UNION ALL
SELECT s.KHMC,
s.BZRMC,
CASE
WHEN s.BZRMC = @cname THEN
1 --如果下层找到了起点,就停止递归
ELSE
0
END AS isrecycle,
CAST(p.full_path + '<' + s.BZRMC AS NVARCHAR(MAX)) AS full_path,
p.nlevel + 1 AS nlevel
FROM [dbo].[dbgx] AS s
INNER JOIN cte_A AS p
ON s.KHMC = p.bzrmc
WHERE CHARINDEX(s.BZRMC, p.full_path) IN ( 0, 1 ) --防止找到起点(担保圈)后继续进行递归查找
AND p.isrecycle = 0 --上层没有找到起点,继续递归
AND p.nlevel <= @nlevel --递归的层数
)
SELECT a.kmmc,
a.bzrmc,
a.isrecycle,
a.full_path,
a.nlevel
FROM cte_A AS a
WHERE a.isrecycle = 1
);
查找担保圈-step1-担保圈表函数的更多相关文章
- 查找担保圈-step2-拆分成员表函数
USE [test] GO /****** Object: UserDefinedFunction [dbo].[tf_split_char] Script Date: 2019/7/8 14:39: ...
- 【Java.Regex】使用正则表达式查找一个Java类中的成员函数
代码: import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; imp ...
- Oracle 管道化表函数
在PL/SQL中,如果要返回数据的多个行,必须通过返回一个REF CURSOR的游标,或者一个数据集合(如临时表或物理表)来完成,而REF CURSOR的局限于可以从查询中选择的数据,而数据集合的局限 ...
- 在VBA中调用工作表函数
虽然VBA几乎可以完成所有工作表函数的功能,但是有时候在无法打开思路的时候,适当调用一些工作表函数也未尝不可,在VBA中调用工作表函数需要用到 WorksheetFunction对象,例如: Work ...
- ORACLE 表函数实现
1.创建表对象类型. 在Oracle中想要返回表对象,必须自定义一个表类型,如下所示: create or replace type t_table is table of number; 上面的类型 ...
- Excel—宏表函数
首先有一个知识点,宏表函数是不能直接在单元格中写公式的,需要先定义一个名称(“公式”选项卡——“定义名称”),然后在“定义名称”中的“定义位置”中写入宏表函数. GET.CELL(调取单元格信息的函数 ...
- db2 MON_GET_PKG_CACHE_STMT 表函数 抓取分析SQL
MON_GET_PKG_CACHE_STMT 表函数 还可以使用 MON_GET_PKG_CACHE_STMT 表函数来查询当前 PACKAGE CACHE 中 SQL 语句(包括动态 SQL 和静态 ...
- SQL 字符串分割表函数
--字符串分割表函数 ) ) declare @i int; declare @count int; ); ); declare @Index int; )) declare @rowID int; ...
- 【DB2】表函数监控数据库
1.快照表函数 在DB2 V9中能够使用SQL表函数捕获快照,以下是部分表函数列表: 快照表函数 返回的信息 SNAPSHOT_DBM ...
- 孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成
孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天经过反复折腾,最终基本上算 ...
随机推荐
- NTT 练习
一 . Rikka with Subset 题目: http://acm.hdu.edu.cn/showproblem.php?pid=5829 参考 https://blog.csdn.net/ ...
- Vmware CentOS 7自适应屏幕分辨率
- 石川es6课程---8、字符串
石川es6课程---8.字符串 一.总结 一句话总结: · es6字符串新增两个方法:startsWith(以什么开头),endsWith(以什么结尾) · 新增反单引号:可以解析变量,可以折行:le ...
- legend3---lavarel安装debugbar工具条
legend3---lavarel安装debugbar工具条 一.总结 一句话总结: ` lavarel插件一般是composer官网下载,然后config/app.php中声明和加别名 ` 直接照官 ...
- [Java]算术表达式求值之二(中序表达式转后序表达式方案,支持小数)
Inlet类,入口类,这个类的主要用途是验证用户输入的算术表达式: package com.hy; import java.io.BufferedReader; import java.io.IOEx ...
- ubuntu下如何卸载nvidia显卡驱动?
答: sudo apt-get remove nvidia* -y
- 理解MQ
1.定义 2.消息队列比较 参考文章:https://www.jianshu.com/p/068b8d1610ee
- 依赖注入框架之androidannotations
主页: http://androidannotations.org/ 用途: 1. 使用依赖注入Views,extras,System Service,resources 2. 简化线程模型 3. 事 ...
- iOS证书详解--转载
一.成员介绍1. Certification(证书)证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:1) Developer Certification(开发证书)安装在电脑上 ...
- C# 线程安全集合类
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/kang_xuan/article/de ...