• 1.数据环境准备

参考Oracle递归查询文章。

  • 2.查询某个节点下的所有子节点
 with cte(id,name,parent_id) as
(
select id,name,parent_id from SC_DISTRICT where name='巴中市'
union all
select sd.id,sd.name,sd.parent_id from SC_DISTRICT sd ,cte c where c.id = sd.parent_id )select * from cte result:
id name parent_id
巴中市
巴州区
通江县
平昌县
大寨乡
响滩镇
龙岗镇
白衣镇
  •  3.计算层级(类似Oracle的level伪列)
with cte(id,name,parent_id,lev) as
(
select id,name,parent_id, from SC_DISTRICT where name='达州市'
union all
select sd.id,sd.name,sd.parent_id,c.lev+ from SC_DISTRICT sd,cte c where c.id=sd.parent_id
)
select * from cte result:
id name parent_id lev
达州市
通川区
宣汉县
塔河乡
三河乡
胡家镇
南坝镇
  •  4.查询路径的根节点(类似Oracle的connect_by_root)
with cte(id,name,parent_id,rootid,rootname) as
(
select id,name,parent_id,id rootid,name rootname from SC_DISTRICT where name='达州市'
union all
select sd.id,sd.name,sd.parent_id,cte.rootid,cte.rootname from SC_DISTRICT sd,cte where sd.parent_id=cte.id
)
select * from cte result:
id name parent_id rootid rootname
达州市 达州市
通川区 达州市
宣汉县 达州市
塔河乡 达州市
三河乡 达州市
胡家镇 达州市
南坝镇 达州市
  •  5.查询递归路径(类似Oracle的sys_connect_by_path)
with cte(id,name,pathname) as
(
select id,name,cast(name as nvarchar) from SC_DISTRICT where name='达州市'
union all
select sd.id,sd.name,cast(cte.pathname+'_'+sd.name as nvarchar) from SC_DISTRICT sd,cte where sd.parent_id=cte.id
)
select * from cte with cte(id,name,pathname) as
(
select id,name,convert(nvarchar,name) from SC_DISTRICT where name='达州市'
union all
select sd.id,sd.name,convert(nvarchar,cte.pathname+'_'+sd.name) from SC_DISTRICT sd,cte where sd.parent_id=cte.id
)
select * from cte result:
id name pathname
达州市 达州市
通川区 达州市_通川区
宣汉县 达州市_宣汉县
塔河乡 达州市_宣汉县_塔河乡
三河乡 达州市_宣汉县_三河乡
胡家镇 达州市_宣汉县_胡家镇
南坝镇 达州市_宣汉县_南坝镇

最新文章

  1. python性能检测工具整理
  2. Unity3d程序运行的时候在unity3d标志哪里进不去的原因
  3. 以Access为支撑,书写一个C#写入记录的案例
  4. android 页面停几秒后跳转
  5. 在visual studio中使用git版本系统(zz)
  6. 《C++Primer》复习——with C++11 [1]
  7. JAVA:23种设计模式详解(转)2
  8. win32下进程间通信——共享内存
  9. 转:redis windows下的环境搭建
  10. atoi()、inet_addr()等函数 time.h文件
  11. json解析eval()中文乱码问题的解决
  12. -1-1 java 基础语法 java关键字 java 注释 常量 语句 运算符 函数 数组定义
  13. java的OSGi确实是个坑
  14. Pycharm用Ctrl+鼠标滚轮控制字体大小
  15. Vue之双向数据绑定
  16. Linux下常用配置文件
  17. DJI-A2调参详细教程
  18. [转]NodeBB 环境搭建
  19. 转:PHPStorm+XDebug进行调试图文教程
  20. php过滤字段htmlentities,htmlspecialchars,strip_tags

热门文章

  1. python常见容器属性和方法
  2. Asynchronous Programming Using Delegates使用委托进行异步编程
  3. ZOJ 2587 Unique Attack(最小割唯一性判断)
  4. python assert 断言详细用法格式
  5. UI 交互
  6. vnc viewer 点击system 卡死现象
  7. zentaoPHP框架是做什么的(整理)
  8. Mysql中FIND_IN_SET和REPLACE函数简介
  9. 在触发器中,当“IsMouseOver”属性=true时,设置当前控件的高亮选中效果
  10. 分享6款优秀的 AR/VR 开源库