zoukankan      html  css  js  c++  java
  • sql中的递归

    开发的时候有个需求,就是根据前台选择的编码,然后查找该节点下所有的结果集,后来百度了一下 sql中 也有递归,

    先看下结果

    with tmps as
    (
    select * from dbo.t_ew_dutyRelation where parentCode = 'parent2'
    union all
    SELECT d2.* from tmps
    inner join t_ew_dutyRelation d2 on tmps.dutyCode = d2.parentCode
    )
    SELECT * FROM tmps

    简单解释一下:

    with as属于sql server新特性CTE(Common Table Expression)的关键字,用来储存临时结果集。常用于代替子查询。

    上面demo中可以理解为,找出父节点为“parent2”的记录后,存放在临时表tmps 中,然后临时表和t_ew_dutyRelation进行内连接,找出它的子记录。子记录和第一条记录union后作为tmps 新的结果集继续进行内连接,找出新的子记录。

    大家如果有什么更好的方法,可以说出来,共同学习!

  • 相关阅读:
    文件和文件夹权限
    CentOS 8修改用户密码
    Linux新建用户默认设置
    二、工具类
    一、MyBatis 核心配置文件
    十一、容器总结
    十、Collections工具类
    九、集合与数组之间的转化
    八、TreeSet
    ※大神※
  • 原文地址:https://www.cnblogs.com/jamestuhao/p/4076926.html
Copyright © 2011-2022 走看看