zoukankan      html  css  js  c++  java
  • TSQL中的递归查询

    表结构

    ProductCategory

    CategoryID,Level,ParentCategoryID

    数据

    1,1,-1

    2,1,-1

    3,2,1

    4,3,3

    5,2,2

    6,4,5

    T-SQL

    WITH CategoryTemp(CategoryID,ParentCategoryID)--临时表用来保存查到的Category

    (

      SELECT CategoryID,ParentCategoryID FROM ProductCategory WHERE ParentCategoryID<=0--将所有的第一层查出来作为初始数据,需要查第几层或者哪个ParentCategoryID下面所有的N层,把ParentCategoryID赋相关的值即可

      UNION ALL--查询N层

      SELECT pc.CategoryID,ParentCategoryID FROM ProductCategory pc 

      LEFT JOIN CategoryTemp ct ON pc.ParentCategoryID=ct.CategoryID

      WHERE ParentCategoryID>0--因为第一层前面已经查出来了,所以这里把第一层筛选掉

    )

    SELECT CategoryID,ParentCategoryID FROM CategoryTemp

    结果

    1,-1

    2,-1

    3,1

    4,3

    5,2

    6,5

    如果把ParentCategoryID赋为2,结果则为

    5,2

    6,5

  • 相关阅读:
    无缝滚动轮播图
    angular 1.6指令与服务
    angular 1.6路由
    javascript 对象
    JavaScript的运算符
    初识JavaScript!
    git常用命令(二)文字版
    CSS水平垂直居中
    收藏的一些牛逼博客
    html5 学习汇总
  • 原文地址:https://www.cnblogs.com/WindBlog/p/2097475.html
Copyright © 2011-2022 走看看