SQL-将具有上下级关系的表,转换成树形图,并标识各节点的类型(根节点、分支节点、叶子节点)
需求:将具有上下级关系的表,转换为树形图,并标识各节点的类型(根节点、分支节点、叶子节点)
分析与解答:
根据伪列level
和connect_by_isleaf
的值进行判断即可
select
level,
(lpad(' ',(level-1)*2,' ')||empno) 树形图, --根据层级左填充空格,以展示树形
empno,
ename,
connect_by_isleaf 是否有, --1无0有
(case connect_by_isleaf when 1 then '没有子树'
else '有子树' end) 是否有子树,
--节点类型,根据伪列level和connect_by_isleaf判断
decode(level,1,1) 根节点, --level和1相等,则返回1
(case when (connect_by_isleaf=0 and level>1) then 1 end) 分支节点,
decode(connect_by_isleaf,1,1) 叶子节点,
--
sal,
hiredate,
mgr,
(prior ename) as mgr_name,
(prior sal) mgr_sal
from emp
start with mgr is null
connect by (prior empno)=mgr
order siblings by empno; --在转换成树形图之后,根据树形关系排序
--order by empno --根据查询结果的empno排序
SQL-将具有上下级关系的表,转换成树形图,并标识各节点的类型(根节点、分支节点、叶子节点)相关推荐
- ORACLE普通表转换成分区表
转http://mp.weixin.qq.com/s?__biz=MzAwMjkyMjEwNg==&mid=2247484761&idx=1&sn=ce080581145931 ...
- badatatable转成json_数据表转换成json(DatatableToJson)
#region 转换Table为JSON数据 /// /// 转换Table为JSON数据 /// /// /// public static string TableToJson(DataTable ...
- C语言:将邻接表转换成邻接矩阵算法
题目 设计一个将邻接表转换成邻接矩阵的算法. 分析 初始时将邻接矩阵 g 中所有对应的元素值设置为 0,扫描邻接表 G 的所有单链表,通过第 i 个单链表查找顶点 i 的相邻结点 p,通过邻接矩阵 g ...
- mysql宽表优化_将MySQL的窄表转换成宽表的方法
将MySQL的窄表转换成宽表的方法 在扩展设计中,使用窄表可以很方便的增加新的项.如果用宽表,就会需要修改表结构,很不方便. 而使用宽表在查询过滤数据的时候会比窄表方便很多,数据的记录量也会少很多. ...
- sql server 通过上下级关系字段用递归方法生成上下级层级关联数据字段
一.场景 有一个数据库表里面存储了一个上下级关系的字段,通过存储这个觉得的上级id.如果要查找所有的上级或者下级就要通过循环每个去查找.如下 id p_id name 1 0 老板 2 1 副总 3 ...
- Java案例:数据表转换成XML文档
将数据表查询内容转换成XML文件,便于在网络上进行传输,具有一定的实用价值. 1.数据表(student) 2.数据库连接管理类 /*** 功能:获得数据库连接* 作者:华卫* 日期:2010年4 ...
- 序列表转换成横向菜单
如何把一个无序列表转换成横向菜单 首先建立一个无序列表 <html> <body> <div id='item'> <ul> <li>星期 ...
- excel数据库设计表转换成sql建表语句
序号 字段英文 字段中文 主键 类型 长度 单位 空否 默认值 备注 1. ID 自增ID N 11 2. REC_CREATOR 记录创建责任者 C 10 3. REC_CREATE_TIME 记录 ...
- sql server数据表转换成xml
运用 for xml但是SQL2000对此支持不好,用SQL2005比较好例如下表sno sname ssex08020001 李勇 男08020002 刘晨 女08020003 王敏 女080200 ...
最新文章
- Spring+Hibernate整合
- 《最终幻想7 重制版》DEMO体验:讨论ATB战斗系统的一些问题
- 前端开发-热更新原理解读
- subroutines of perl
- 形参与实参的区别---java基础
- gjrand 4.0 发布,C语言的伪随机数生成器
- Python数据可视化之Pygal(雷达图)
- c语言:编辑一个有趣的死循环程序并对其修改,仅仅是一个“=”号的差别
- 在线动态几何编辑器 GeometryEditor
- 【ASP.NET】swfuplod图片上传
- 小程序纵向选项卡可以滑动_微信小程序实现选项卡滑动切换
- [leetcode Q50] Pow(x, n)
- 人工智能未来发展论文
- mysql隔离级别到底是什么
- Vlan 单线复用之复式二层住宅网络改造实操案例(一)
- Quartz框架实现定时任务介绍及简单使用
- Visual Studio Code修改主题背景颜色
- 英语学习--八月转折
- CAD命令集 CAD命令笔记本
- 万豪参加进博会品牌+目的地策略继续深耕中国市场;加利福尼亚乐高乐园和法拉利推出互动式景点项目 | 全球旅报...
热门文章
- speedoffice(Excel)表格怎么插入分数?
- 实战记录:爬大众点评评论区
- PO、POJO、VO、Entity、Model、DTO的区别
- 1.2 你应该了解的轨至轨输入
- codeforces-103A Testing Pants for Sadness(简单递推)
- IE9 IE10 无法上传文件 解决方案
- win10系统ie直接跳转edge还原方法
- Cypress使用npm启用时报Error: Cannot find module ‘minimist‘
- 三种测试环境中的软件和硬件,硬件需求十分良心 泰坦陨落AN显卡测试
- 新手创业需要资金吗?