问题标签 [hierarchical-query]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oracle - Oracle START WITH 子句不返回根行
我在 Oracle 10g 中执行以下查询以检索分层形式的数据(完整的查询有点复杂):
这是内部选择返回的集合:
如果我在没有START WITH 子句的情况下运行整个查询,我会正确得到以下结果:
但是如果我使用START WITH 子句运行它,则查询不会返回任何行,而我希望有 2 行:
最奇怪的是:
- 该问题仅在某些情况下发生,而查询适用于大多数情况,数据值没有很大差异;
- 如果我使用内部选择的结果集创建一个表,即使使用 START WITH 子句,相同的查询也可以正常工作。
这是使用创建的表的查询:
似乎 START WITH 子句与 PARENT 字段中的 NULL 值不匹配。为什么会这样?
提前致谢。最好的祝福。
sql - 我想在oracle数据库中插入十亿条记录
我必须在 oracle 数据库表中插入十亿条记录。我有 2 列。一列是一个序列号,一直到 1,000,000,000 第二列是一个 varchar2 字段...格式为 abc~122~373~7777777~5367 。即第一列必须包含 3 个随机字符,后跟 '~',然后是 3 个随机数,后跟 '~',然后是 3 个随机数,后跟 '~',然后是 7 个随机数,后跟 '~',最后是 4 个随机数通过'〜'。而且我需要所有记录都是唯一的。
oracle - 通过先验连接更新查询的 SQL 语法
我开始使用 SQL,并且遇到了分层查询。同时我成功地用命令选择了行connect by prior
但未能更新。这是我的更新查询:
我得到了SQL Error: ORA-00933: SQL command not properly ended
。如何分层更新表?
编辑
我也尝试将where
条件放在 中start with
,但它没有帮助:
sql - 为什么 Oracle 伪列 CONNECT_BY_ISLEAF 似乎坏了?
首先简要描述我的问题
我有一个包含可能在这个伪有向图中表示的数据的表: 我说它是一个伪图,因为我有一些“边”,它们只连接在一个节点上。
每个«edges»都被标记,并将被视为一个事件。
每个节点只包含一个 ID。
Oracle (12c) 表如下所示: http ://sqlfiddle.com/#!4/79cdb5/4/0
在表上,我运行了此查询 ,并且我希望在其伪列 CONNECT_BY_ISLEAF 中具有 1 的行之一改为 0。
这是有罪的行: http ://sqlfiddle.com/#!4/79cdb5/3/2
我完全无法理解为什么甲骨文不认为这一行显然是一片叶子。
表数据说明
在表格中,我使用的每一行代表一个事件(或图形边缘)加上它所连接的节点。
VUID 列是“上一个”节点,AUID 是«step»,EVENT 是事件标签,NEW_VUID 是“下一个”节点。
事件 D 和 U 例外,它们只有 1 个节点连接,并且该节点将始终位于 VUID 列中(即使对于 D 事件,该节点是“下一个”节点)。
错误请求的描述和目的
在这里,我将提供一些有关我正在执行的请求的背景信息
我的最终目标是根据表中的数据重新创建此图表。为此,我按以下步骤进行:
- 构建 «forward» 树,每个根必须是具有 D «edge» 的节点
- 构建«reverse»树,每个根都是没有子节点的节点
- “合并”所有相关的树,最终得到想要的图。最终图表应接近本问题开头显示的图表。
要使用 oracle 创建树,我认为最简单的方法是进行正确的分层查询,然后使用伪列 SYS_CONNECT_BY_PATH 并在 CONNECT_BY_ISLEAF = 1 上进行过滤,这是因为只使用叶子加上每个叶子的路径很容易重新创建树。
但是我被卡住了,因为出于某种原因,我不明白 Oracle 没有像我一样考虑所有叶子。不考虑包含节点 88888 的叶子
sql - 通过先验连接数据系列
我有一张桌子,上面有一个系统的到达和离开时间段。我也有到达和离开的预测。我想计算不完整预测周期的开始和结束计数(理想情况下使用合并和连接)。
要重现的数据:
- 一个时期的结束人数=开始人数+到达-退出。
- 一个时期的开始人数=上一时期的结束人数
我最初的尝试:
但是,它没有产生正确的结果。感谢任何帮助!
oracle - oracle 中的树结构查询,具有一个整数字段和一个 varchar 字段
这里我需要树结构查询,一个是int,另一个是varchar字段。我不想将 varchar 修改为 int。
表结构:
在这里,我正在尝试投射 wbs_id
但我得到错误:用户数据中的CONNECT BY循环
oracle - 查询在员工之前检索经理
我们有资源列表及其经理(不是完整的层次结构)。我们现在需要检索资源列表,以便资源的经理行应始终出现在资源行之前。我已经尝试过分层查询,但是鉴于数据集,我不确定它是否正常工作。有什么指点或线索,请确认订单?
编辑:在数据集中添加了最后一行,查询似乎不再起作用。
数据集
预期的有序结果集
sql - 如何在同一命令中从 2 个不同的树中选择最高级别
我有一个具有以下外观的数据集。
这是使用以下命令的结果
我要结果
也就是说,我想提取每棵树的最高根。理想情况下,我希望在我拥有的相同命令中完成此操作,但我在该领域内太新手了,不知道如何去做。