加载中...
加载中...
SQL 获取所有叶子结点

SQL 获取所有叶子结点 原创

场景:按照集团账户管理模块配置的业态每个末级单位生产多个预算单位,需要获取末级单位。

单位表结构:

-- 单位编号 CLTNO
-- 父单位编号 ORG_PARENT_ID

复制收展SQLcreate table CLT_CLT_INFO
(
ID NUMBER(6) not null
constraint PK_CLT_CLT_INFO
primary key,
TYPE NUMBER,
CLTNO VARCHAR2(100)
constraint UK_CLT_CLT_INFO_CLTNO
unique,
TREENO VARCHAR2(100) default -1 not null,
CHINESENAME VARCHAR2(100),
ORG_PARENT_ID VARCHAR2(100),
ROLEGROUPID NUMBER
)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

思路: 获取所有叶子结点
-- 1、一个结点不是其他结点的父节点,那他就是叶子结点;
-- 2、根节点没有子结点的情况,ORG_PARENT_ID是空的;

-- 根据根结点获取所有叶子结点

复制收展SQLselect *
from CLT_CLT_INFO clt
where 1 = 1
and clt.TREENO like '001007%'
and clt.CLTNO not in (
select distinct clt2.ORG_PARENT_ID
from CLT_CLT_INFO clt2
where clt2.ORG_PARENT_ID is not null
);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9




数据库中“hql和sql”的区别1、sql面向数据库表查询。2、hql面向对象查询。3、hql:from后面跟的类名+类对象where后用对象的属性做条件。4、sql:from后面跟的是表名  
没有更多推荐了 [去首页]
image
文章
357
原创
284
转载
73
翻译
0
访问量
199063
喜欢
47
粉丝
6
码龄
5年
资源
0

文章目录

加载中...
0
0