SQL Server通过的方法查询树型结构

  

<强>一,公用表表达式

  

类似视图,但是不并没有创建对象,以公用表表达式不创建对象,只能被后随的选择语句,其作用:

  

1。实现递归查询(树形结构)

  

2。可以在一个语句中多次引用公用表表达式,使其更加简洁

  

<强>二、非递归的公共表达式

  

可以是定义列或自动列和select into效果差不多

        ——指定列   cName withTmp1(代码)   作为   (   从ClassUnis选择id、名称   )   select * from withTmp1   ——自动列   与withTmp2   作为   (   select * from ClassUnis   作者=跋低场?   )   select * from withTmp2      

<强>三,递归的方式

  

通过UNION ALL连接部分。通过连接自身一点点作为创建的表达式,它的连接条件就是递归的条件。可以从根节点往下查找,从子节点往父节点查找。只需要颠倒一下连接条件,例如代码中条件改为t。ID=c.ParentId即可

        与树(   ——0水平定义树的层级,从0开始   select *, 0水平   从ClassUnis   ParentId是零   union all   - - - t。级+ 1每递归一次层级递增   选择c。*, t。级+ 1   从树ClassUnis c, t   在c。ParentId=t.ID   ——从ClassUnis c内连接树t alt=" SQL Server通过的方法查询树型结构">

  

还能通过选项(maxrecursion数字)设置最大递归次数。例如上诉结果水平最大值为2表示递归两次。我们设置其值为1

        与树(   select *, 0级别从ClassUnis ParentId为空的地方   union all   选择c。*, t。从树ClassUnis c级+ 1 t c。ParentId=t.ID   )   select *树中作者不喜欢' %/%   选项(maxrecursion 1)      

 SQL Server通过的方法查询树型结构

  

好了这篇文章就介绍到这了,希望能帮助到你。

SQL Server通过的方法查询树型结构