zoukankan      html  css  js  c++  java
  • SQLServer树查询

           感觉这个CTE递归查询蛮好用的,先举个例子:

     

    上面的SQL语句再次插入一条数据:

    insert Tree values('网络1班','网络工程')

         运行结果如下图:

    图1 运行结果

         注意点:貌似在递归成员处所选择的字段都必须Tree表的数据,而不能是CTE结果集中的除了Tree中没有而CTE中有的字段在这里才可以引用,比如字段TE。

        首先看下,遍历的第1条记录的SQL语句:

       获取的结果为:

       Name  Parent   TE    Levle

    -------------------------------------

         大学    NULL   大学     0

       递归第2次所获取的结果集合的类SQL语句为:

       上面的CTE子查询的结果就是第一次递归查询的结果集,上面SQL运行结果为:

       同样的,将第二次递归查询的上面三条记录作为第三次查询的‘定位成员’:

      【这里要注意,上面的三条记录是从最后一条开始依次作为第三次递归的输入的,即第一条是ID=9的记录,接下来是7和2,关于第四次递归也类似】

       第三次递归类SQL语句

       结果如下:

    其实每次递归的类SQL可为如下所示:

     第四次递归一次类推,最后所查询的结果为上面所有递归的union。

     续:在上面的SQ语句查询结果中,ID为10的记录应该要放在ID为4的后面。

     往数据表中再次添加两条记录:

    insert Tree values('计科','计算机学院')
    insert Tree values('我','网络1班') 

    再次修改上面的SQL语句:

    最后的结果为:

    图2 运行结果

    这样,无论用户插入多少条记录都可以进行按部门,按规律进行查询。

  • 相关阅读:
    Linux命令之查看cpu个数_核数_内存总数
    Python文件操作大全,随机删除文件夹内的任意文件
    Python文件操作:同一个文件进行内容替换
    异步请求Python库 grequests的应用和与requests库的响应速度的比较
    查询MySQL某字段相同值得重复数据
    /var/redis/run/redis_6379.pid exists, process is already running or crashed的解决办法
    人工智能----TensorFlow开篇简介
    Centos6.5+Python2.7 +ffmpeg+opencv2自动安装脚本
    决策统计---指标六要素
    大数据应用分类
  • 原文地址:https://www.cnblogs.com/mingjing/p/7136831.html
Copyright © 2011-2022 走看看