使用With递归查询 树

  1. WITH CTE AS (
  2. -- 一个定位点成员 
  3. SELECT a.* FROM tree a WHERE pid = 0
  4. UNION ALL
  5. -- 递归成员  
  6. SELECT a.* FROM tree a JOIN CTE c ON a.pid = c.id
  7. )
  8. SELECT * from CTE
 

  1. --1.将 CTE 表达式拆分为定位点成员和递归成员。  
  2. --2.运行定位点成员,创建第一个调用或基准结果集 (T0)。  
  3. --3.运行递归成员,将 Ti 作为输入(这里只有一条记录),将 Ti+1 作为输出。  
  4. --4.重复步骤 3,直到返回空集。  
  5. --5.返回结果集。这是对 T0 到 Tn 执行 UNION ALL 的结果。  




posted @ 2016-08-30 15:41  Tom.汤  阅读(502)  评论(0编辑  收藏