当前位置: 首页 > article >正文

sql severs 递归查询

在sqlsevers 里面 WITH RECURSIVE 语句(在SQL Server中,通常使用 WITH 语句的公用表表达式(CTE)来实现递归查询),来处理这类查询

假设你有一个简单的BOM表结构,它可能包括以下几个字段:

  • BOM_ID:BOM的唯一标识符。
  • Product_ID:最终产品的ID。
  • Component_ID:构成该产品的部件或组件的ID。
  • Quantity:每个最终产品所需该部件或组件的数量。
  • Level:可选,表示部件在BOM中的层级(例如,直接部件为1,子部件的部件为2,依此类推)
  • 以下是一个使用CTE进行递归查询的示例,以检索给定产品的完整BOM树:
  • WITH RECURSIVE BOM_CTE AS (
        SELECT
            BOM_ID,
            Product_ID,
            Component_ID,
            Quantity,
            LEVEL,
            CAST (
            '' AS VARCHAR ( MAX )) AS Path 
        FROM
            BOM 
        WHERE
            Product_ID = 100 -- 假设我们从最终产品ID为100的产品开始
            UNION ALL-- 递归成员
        SELECT
            b.BOM_ID,
            b.Product_ID,
            b.Component_ID,
            b.Quantity,
            b.Level,
            CAST (
            cte.Path + '->' + CAST ( b.Component_ID AS VARCHAR ) AS VARCHAR ( MAX )) 
        FROM
            BOM_CTE cte
            INNER JOIN BOM b ON cte.Component_ID = b.Product_ID 
        ) SELECT
        * 
    FROM
        BOM_CTE 
    ORDER BY
        Path;

http://www.kler.cn/a/303662.html

相关文章:

  • 云安全之云计算基础
  • Mac 使用mac 原生工具将mp4视频文件提取其中的 mp3 音频文件
  • [pyspark] pyspark中如何修改列名字
  • golang使用etcd版本问题
  • 利用编程语言和脚本编写技术,实现自动化渗透测试和安全工具的开发
  • 深入探索离散 Hopfield 神经网络
  • seafaring靶场漏洞测试攻略
  • MATLAB移动目标检测与追踪系统
  • 数据结构—线性表和顺序表
  • 【系统分析师】计算机组成与体系架构
  • 基于ssm框架的学生社团管理系统APP---附源码75171
  • JavaScript的事件介绍
  • MySQL_SQLYog简介、下载及安装(超详细)
  • 【深度学习】PyTorch 的发展历程 截止 2.1.0
  • 茅台镇酱香型白酒你知道多少?
  • MongoDB日志级别
  • 如何在本地Windows运行hadoop
  • conda 安装tensorflow一些命令
  • 人工智能在鼻咽癌诊断和治疗中的应用进展、当前挑战和未来前景|文献精析·24-09-13
  • 苹果CMS海洋CMS那个更容易被百度收录?苹果CMS站群
  • 输电线路在线监测摄像头:规格(一)
  • 【已解决】请教 “Sa-Token 集成 xxl-job,报错:非 web 上下文无法获取 HttpServletRequest” 如何解决
  • oracle select字段有子查询会每次执行子查询吗
  • 波克城市 x NebulaGraph|高效数据血缘系统在游戏领域的构建实战
  • Java中各种数据结构如何使用stream流
  • Xcode报错:Return from initializer without initializing all stored properties