create table tb(id varchar(3) , pid varchar(3) , name varchar(10))
insert into tb values('001' , null  , '广东省')
insert into tb values('002' , '001' , '广州市')
insert into tb values('003' , '001' , '深圳市')
insert into tb values('004' , '002' , '天河区')
insert into tb values('005' , '003' , '罗湖区')
insert into tb values('006' , '003' , '福田区')
insert into tb values('007' , '003' , '宝安区')
insert into tb values('008' , '007' , '西乡镇')
insert into tb values('009' , '007' , '龙华镇')
insert into tb values('010' , '007' , '松岗镇')
go  --查询指定节点最上级父节点的函数
create function f_pid(@id varchar(3)) returns @t_level table(id varchar(3))
as
begin  insert into @t_level select @id  select @id = pid from tb where id = @id and pid is not null  while @@ROWCOUNT > 0  begin  delete from @t_level  insert into @t_level select @id select @id = pid from tb where id = @id and pid is not null  end  return
end
go  --调用函数查询005(罗湖区)的最上级父节点
select a.* from tb a , f_pid('005') b where a.id = b.id
/*
id   pid  name
---- ---- ----------
001  NULL 广东省  (所影响的行数为 1 行)
*/  --调用函数查询002(广州市)的最上级父节点
select a.* from tb a , f_pid('002') b where a.id = b.id
/*
id   pid  name
---- ---- ----------
001  NULL 广东省  (所影响的行数为 1 行)
*/  --调用函数查询001(广东省)的最上级父节点
select a.* from tb a , f_pid('001') b where a.id = b.id
/*
id   pid  name
---- ---- ----------
001  NULL 广东省  (所影响的行数为 1 行)  drop table tb
drop function f_pid  

转载自http://heisetoufa.iteye.com/blog/1530950

sql 树形 子节点获取最顶级的节点相关推荐

  1. activiti根据当前节点获取下一个UseTask节点

    以前写过一篇文章activiti根据当前节点获取下一个节点信息,当时的需求只是需要获取下一个节点而已,并没有要求获得什么类型的节点,所以下一个节点可能是任何节点,在最近的项目中的需求是根据当前的节点获 ...

  2. mysql sql 取树结构_MySQL 树形结构 根据指定节点 获取其所有叶子节点

    背景说明 需求:MySQL树形结构, 根据指定的节点,获取其下属的所有叶子节点. 叶子节点:如果一个节点下不再有子节点,则为叶子节点. 问题分析 1.可以使用类似Java这种面向对象的语言,对节点集合 ...

  3. mysql 叶子节点_MySQL 树形结构 根据指定节点获取其所有叶子节点

    背景说明 需求:MySQL树形结构, 根据指定的节点,获取其下属的所有叶子节点. 叶子节点:如果一个节点下不再有子节点,则为叶子节点. 问题分析 1.可以使用类似Java这种面向对象的语言,对节点集合 ...

  4. mysql获取当前节点的所有叶子节点_MySQL 树形结构 根据指定节点 获取其所有叶子节点...

    背景说明 需求:MySQL树形结构, 根据指定的节点,获取其下属的所有叶子节点. 叶子节点:如果一个节点下不再有子节点,则为叶子节点. 问题分析 1.可以使用类似Java这种面向对象的语言,对节点集合 ...

  5. elementui tree获取父节点_vue_elementUI_ tree树形控件 获取选中的父节点ID

    一,  vue_elementUI_ tree树形控件 1.1默认点击tree节点的第一个(注意不是checked选中) :expand-on-click-node="false" ...

  6. JQuery 各节点获取函数:父节点,子节点,兄弟节点

    jQuery.parent(expr)           //找父元素 jQuery.parents(expr)          //找到所有祖先元素,不限于父元素 jQuery.children ...

  7. JavaScript中节点获取,节点的属性,如何操作节点

    任何 HTML 或 XML 文档都可以用 DOM 表示为一个由节点构成的层级结构.     一般来说在HTML中文档的节点分为三种: 1.元素节点 通过querySelector获取的节点就是元素节点 ...

  8. activiti根据当前节点获取下一个节点信息

    在流程中使用监听器判断当前节点是否需要经过,否则跳转到下一个节点,如下图 当提交申请之后,当前提交人为部门负责人,那么部门负责人节点就不需要走了,直接到下一个节点,但是下一个节点是什么并不知道,就可以 ...

  9. Java 树形结构数据生成--不需要顶级节点

    概要 树形结构数据是后台开发中非常常见的一种数据结构.后台管理系统中必要的一种结构,常见的树形结构数据有,部门树,权限树等等,利用该数据结构可以让你的系统数据展示一目了然,并且为分配这些数据也提供了极 ...

  10. Java根据子节点获取最上层节点(根节点)数据和所有上级集合

    目录 1 通过递归获取树形结构.通过父节点获取最底层节点(叶子节点)数据.树形XML,可以参考以下内容: 2 实体和数据结构 2.1 Dept实体类 2.2 相关树形结构 3 根据子节点获取最上层节点 ...

最新文章

  1. java 命名管道_利用Windows命名管道实现IPC的一种有效方法
  2. 1.6 Java数组也是一种数据类型
  3. OpenGL计算着色器
  4. 微博 用户画像_“肖战”被抵制?Python爬虫揭秘肖战粉丝的人群画像
  5. TCP/IP(五):TCP 协议详解
  6. 鲜为人知的Java 8功能:广义目标类型推断
  7. [转载] JVM(一):JVM体系结构详解
  8. 基于JavaScript的在线语音识别库Julius
  9. Android 隐藏、显示软键盘方法
  10. 用Maven创建第一个web项目Struts2项目
  11. a标签传值到另一个页面_用大头儿子和小头爸爸举例,就讲明白 vue 中父子组件的传值? | 原力计划...
  12. 继续教育自动听课软件_2017继续教育挂机软件下载
  13. 【源码】色度坐标计算器:计算CIE坐标并绘制
  14. bootstrap多文件上传和单文件上传
  15. 商誉风险只是局部爆发 市场整体业绩没那么糟
  16. linux 目录历史于特点,linux 返回上次历史目录
  17. 一文带你搞懂C#多线程的5种写法
  18. 极光笔记丨百亿级数据的实时存取优化与实践
  19. 二维数字图像相关算法软件Ncorr的使用心得
  20. AI视屏处理(C++)

热门文章

  1. 电影《无双》中的管理知识
  2. SpringBoot防止大量请求攻击
  3. Element的使用
  4. RCWL-0516微波雷达感应开关 人体感应传感器,迷你多普勒雷达
  5. 使用HTML编写浣溪沙,浣溪沙_巅峰Hacker_新浪博客
  6. ERP实施顾问职业所具备的知识和能力结构的几个建议
  7. ios中自定义相机_在iOS中制作自定义相机
  8. sai钢笔图层怎么移动某条线?
  9. retina 显示屏详细理解
  10. Maya 展UV和贴图