zoukankan      html  css  js  c++  java
  • 查找担保圈-step1-担保圈表函数

     1 USE [test];
     2 GO
     3 /****** Object:  UserDefinedFunction [dbo].[f_findrecycle]    Script Date: 2019/7/8 14:37:08 ******/
     4 SET ANSI_NULLS ON;
     5 GO
     6 SET QUOTED_IDENTIFIER ON;
     7 GO
     8 ALTER FUNCTION [dbo].[f_findrecycle]
     9 (
    10     @cname NVARCHAR(100), --起点
    11     @nlevel INT           --递归的层数
    12 )
    13 RETURNS TABLE
    14 AS
    15 RETURN
    16 (
    17     WITH cte_A (kmmc, bzrmc, isrecycle, full_path, nlevel)
    18     AS (SELECT [KHMC],
    19                [BZRMC],
    20                0 AS isrecycle,
    21                CAST(KHMC + '<' + BZRMC AS NVARCHAR(MAX)) AS full_path,
    22                1 AS nlevel
    23         FROM [dbo].[dbgx]
    24         WHERE KHMC = @cname
    25         UNION ALL
    26         SELECT s.KHMC,
    27                s.BZRMC,
    28                CASE
    29                    WHEN s.BZRMC = @cname THEN
    30                        1 --如果下层找到了起点,就停止递归
    31                    ELSE
    32                        0
    33                END AS isrecycle,
    34                CAST(p.full_path + '<' + s.BZRMC AS NVARCHAR(MAX)) AS full_path,
    35                p.nlevel + 1 AS nlevel
    36         FROM [dbo].[dbgx] AS s
    37             INNER JOIN cte_A AS p
    38                 ON s.KHMC = p.bzrmc
    39         WHERE CHARINDEX(s.BZRMC, p.full_path) IN ( 0, 1 ) --防止找到起点(担保圈)后继续进行递归查找
    40               AND p.isrecycle = 0 --上层没有找到起点,继续递归
    41               AND p.nlevel <= @nlevel --递归的层数
    42     )
    43     SELECT a.kmmc,
    44            a.bzrmc,
    45            a.isrecycle,
    46            a.full_path,
    47            a.nlevel
    48     FROM cte_A AS a
    49     WHERE a.isrecycle = 1
    50 );
  • 相关阅读:
    BZOJ 2306 幸福路径(DP)
    BZOJ 2303 方格染色(带权并查集)
    2011 Multi-University Training Contest 8
    POJ 1379 Run Away(模拟退火)
    BZOJ 3680 吊打XXX(模拟退火)
    POJ 3074 Sudoku(Dancing Links)
    java 基础语法 1
    java 配置环境变量
    windows 结束进程的详细过程
    在同一台服务器上配置多个Tomcat
  • 原文地址:https://www.cnblogs.com/felix22/p/11151075.html
Copyright © 2011-2022 走看看