oracle叶子节点函数,oracle tree计算叶子节点到根节点的乘积
//有下面一棵二叉树,转换为表结构:
parent_id child_id weight
------ ------- ------
a b 2
b c 3
c d 4
b e 7
c f 2
//计算叶子节点到根节点之间边的权值的乘积:
leaf weight
---- ------
d 24
e 14
f 12
//数据
create table tree (parent_id varchar2(10),child_id varchar2(10),weight number(2));
insert into tree values('a','b',2);
insert into tree values('b','c',3);
insert into tree values('c','d',4);
insert into tree values('b','e',7);
insert into tree values('c','f',2);
//创建一个函数实现求字串乘积(动态SQL)
create or replace function func_tree(str in varchar2)
return number
as
num number;
begin
execute immediate 'select '||str||' from dual' into num;
return num;
end func_tree;
//sql代码:
select child_id, func_tree(substr(sys_connect_by_path(weight, '*'), 2)) weight
from tree t
where connect_by_isleaf = 1
start with not exists (select 1 from tree where t.parent_id=child_id)
connect by prior child_id = parent_id
order by child_id;
//结果:
CHILD_ID WEIGHT
---------- ----------
d 24
e 14
f 12
oracle叶子节点函数,oracle tree计算叶子节点到根节点的乘积相关推荐
- oracle关于字符串函数,Oracle字符串处理函数
Oracle字符串处理函数 Oracle字符串处理函数 2008年10月18日 星期六 23:45 项目中有涉及存储过程对字符串的处理,所以就将在网上查找到的资料汇总,做一个信息拼接式的总结. 以下信 ...
- oracle查看时间戳函数,oracle数据库实现获取时间戳的无参函数
oracle数据库实现获取时间戳的无参函数 代码如下所示: CREATE OR REPLACE FUNCTION GETMSTIMESTAMP RETURN NUMBER AS MSTIMESTAMP ...
- oracle中嵌套函数,Oracle的嵌套函数语法
Oracle的嵌套函数语法 单行函数可以嵌套任意层: 嵌套函数从最深层开始执行. 通用函数: BFILENAME(directory,file_name) 返回操作系统中与物理文件 file_name ...
- oracle中各种函数,oracle中常用函数大全
1.数值型常用函数 函数 返回值 样例 显示 ceil(n) 大于或等于数值n的最小整数 select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数 s ...
- oracle中lead函数,oracle lead()函数 | 学步园
ead()是一个分析函数,适用于oracle 8i以后的版本, 使用这个函数,你可以一次性从表中查询多条记录, 而不需要进行表的自连接. 返回值:返回与当前行偏离offset行的列值. 语法: lea ...
- oracle的连接函数,Oracle各种连接函数总结
1.前言 Oracle可用连接函数会介绍以下几个 Oracle列转行函数 Listagg() strcat() wmsys.wm_concat() 2.Oracle列转行函数 Listagg() 2. ...
- oracle对象权限 函数,oracle的系统和对象权限
alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter any sequence 修改任 ...
- oracle调用MySQL函数,Oracle的INSTR函数MySQL实现
Oracle的INSTR函数MySQL实现 一个迁移项目遇到的,MySQL的instr函数只能查找子串是否在父串中,没法按照出现的次数进行查找.这里我自己写了一个,以便迁移.当然我这里仅仅针对的是迁移 ...
- oracle中转换函数,Oracle中的转换函数
Oracle中的转换函数有三个,分别为to_char(),to_date(),to_number() 1.to_char()的用法 格式化当前的日期时间 select sysdate,to_char( ...
- 【Groovy】json 序列化 ( JsonBuilder 生成器 | 生成带根节点名称的 json 字符串 | 生成不带根节点名称的 json 字符串 )
文章目录 一.json 生成器 二.代码示例 一.json 生成器 首先 , 创建 json 生成器 . // json 生成器 def jsonBuilder = new JsonBuilder() ...
最新文章
- java JMS消息队列
- python学精通要多久-学习Python从入门到精通需要多长时间
- php mongodb _id,PHP库 查询Mongodb中的文档ID的方法
- 收藏!一张图帮你快速建立大数据知识体系
- 如何使用 React 和 React Hooks 创建一个天气应用
- C#_XXX事件 的重载均与委托System.EventHandler不匹配
- Stats mac免费版 2.4.9(支持M1驱动器的mac,最新macOS系统)
- ObjC学习7-C语言特性
- android打开文件管理获取文件名,如何从android中的文件路径获取文件名
- webpack(一)
- 创建自定义Excel模板
- 革命三部曲系列——《让子弹飞》的秘密,都在《邪不压正》里面
- 后端接口如何提高性能?
- c语言进程伪装,易语言程序伪装软件
- [树的直径 树形DP] UOJ #11【UTR #1】ydc的大树
- 倚天摘星:四季度反复筑底成为定局!
- 判断字符串不超过20个字符_如何阻止超过140个字符的推文(如果确实需要)
- LoadRunner通过SiteScope监控MySQL的性能
- linux centos 7 docker下载mysql5.7
- 智能电视验收测试软件,2018智能电视用户赞不绝口的三款屏幕检测软件,绝对干货!...