• 来自Azure SQL数据库上的递归


    ​介绍

    递归CTE是一种反复引用查询的方法,直到被认为是端点或终止检查(如所称)。值得注意的是,本文演示的示例将在Azure SQL数据库上完成。

    使用递归CTE有一定的结构,如下所示:

    图1:递归CTE结构

    有一个初始查询被称为“锚点查询”,在上图中,该查询选择数字“1”作为“n”。有一个使用“UNION ALL”连接在一起的辅助查询。辅助查询,也称为“递归成员”(如上图所示)是连续运行的查询,直到递归成员到达终止点为止(也显示在上面的图像上)。

    场景

    例如:某公司总部人力资源部员工,需要向分公司经理询问员工的进展情况,以便了解现有员工的能力,能否胜任自己的岗位,从而了解该公司是否需要招收更多的员工,所以想要找出谁在管理员工。

     解决方案

    如上所述,示例是在Azure SQL数据库上完成的。所以,让我们来解决这个问题。这个演示被广泛用于展示递归CTE的用例。

    图 2:数据集

    以上是我们将要使用的数据集,以及我们将用于构建递归 CTE 的数据集。因此,在此示例中,我们可以看到有 2 条记录没有为"ReportsTo"列填充值,我们将假定它们是经理。

    为了构建递归 CTE,我们将首先选择"ReportsTo"等于 NULL 的记录。

    上图显示的将是递归CTE的锚定成员,如图1所示。这将是为递归成员设置基础的初始查询。在定位查询和递归之间,使用了“UNION ALL”联接,如下所示:

    接下来是递归成员,它将连续运行,直到达到终止检查为止。现在让我们创建接下来的2个步骤,其中包括递归成员和终止检查(可以在查询的内部联接中看到)。

    如您所见,上述代码已包装在" WITH StaffHierarchy AS"中,该代码调用递归 CTE,或者为此调用CTE。

    最后,通过从CTE本身选择来完成代码,以展示递归CTE的结果。

    推荐阅读

    1. 2020年度盘点 | Power BI 精汇帖

    2. Power BI 架构的数据解决方案

    3. Power BI 12月功能更新 —— 视频上线

    4. Power BI 12月产品功能更新

    5. 不再裂开 | 一组你们心心念念的 Power BI 报告集锦,请签收!

    技术交流

    1.Power BI免费下载:http://www.yeacer.com/

        Microsoft Power BI Desktop中文最新版:下载地址

    2.欢迎加入的Power BI技术群,目前正在学习阶段,有兴趣的朋友可以一起学习讨论。 

       Power Data技术交流群:702966126 (验证注明:博客园Power BI) 

       更多精彩内容请关注微信公众号:悦策PowerBI          


    如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载。
  • 相关阅读:
    SqlServer禁用启用触发器、外键约束
    解决Windows Server2008R2中导入Excel不能使用Jet 4.0
    C#读写配置文件
    C#后台如何获取客户端访问系统型号
    Flex在Win10,Chrome浏览器上汉字乱码的问题
    flex lineChart 显示所有的数据节点
    HTTP状态码大全
    zabbix使用sendEmail发送邮件报警
    zabbix安装
    Samba服务器搭建配置
  • 原文地址:https://www.cnblogs.com/yeacer/p/14271267.html
Copyright © 2020-2023  润新知