问题标签 [connect-by]
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 - 通过子句连接以获得层次结构的顶部
我在使用CONNECT BY
Oracle 中的子句查找分层数据时遇到问题。让我举个例子:A是我的父部分,它有子部分B,B也有一个子部分C。当我使用该CONNECT BY
子句时,我能够获得所有三个级别,但我只想要最顶层,即一个。
sql - 分层查询:获取每个节点的直接子节点数
我是分层查询的新手,我已经阅读了大部分关于它的帖子。
我有一个想改进的查询。
我的场景是这样的:
表数据如下:
我希望结果是这样的:
我编写了以下查询,它给出了除 DIRECT_CHILDREN_COUNT 之外的所有列
关于如何获取节点的所有子节点(不仅仅是直接子节点)的计数有很多帖子,这些不适用于我,因为
1.我只想要直接的孩子数。
2.如果可能的话,我想在不使用joins的情况下实现这一点。
我不知道如何将直接子项计为每条记录的列值。无论如何我可以使用分层查询获得 DIRECT_CHILDREN_COUNT 吗?
sql - 对所有孩子的查询连接
有没有办法让connect prior... start with
Oracle 中的语句从表中的第一个“孩子”开始,然后对所有剩余的孩子也运行查询?我知道如何为 1 个孩子使用该语句并获取其祖先,但我需要为表中的许多不同孩子运行代码。
假设我有这个代码,它从组件表和组件的父级返回一个组件和组件的颜色,它被归类为“样本”,它的颜色,其中组件的父级 ID 是组件的父级 ID。
这是我的架构:
注意:这是示例代码,不是我实际使用的代码,所以如果你犯了愚蠢的错误,我很抱歉。
表组件有很多不同的组件,我希望查询不仅返回 ID 为 2000 的组件及其“样本”父组件,而且对表“组件”中的所有子组件执行此操作。
我可以看到如何使用循环来完成此操作,但我找不到可用于 Oracle 的循环类型。对不起,刚开始。
oracle - Oracle 10g PL/SQL Connect By Prior return Child and Parent on同一行
此代码返回父母行
克里斯
如果未包含“Where”子句,则代码将返回:
我要返回的是连续的以下内容,而不是列中的内容:
鲍勃·克里斯
其中 Chris 是有才能的人,并且是 Bob 的父母,因此代码不仅返回父母,还返回发起对该父母的查询的孩子,所以在这段代码中:
我会拥有具有天赋的孩子克里斯和发起搜索克里斯的前一个孩子鲍勃,所以假设 Bob 是 Gala 的孩子,而 Gala 是 Chris 的孩子,我仍然希望在结果中只得到 Bob 和 Chris .
条件:我无权创建临时表或任何类型的表,所以我不能使用任何循环来执行此操作,除非我不知道如何在没有临时表的情况下执行此操作
我不知道如何从“先前”语句和实际上是前一个孩子的父母的新“孩子”之前返回一个孩子。
sql - 使用重复的分层检查通过查询连接
我写了以下查询,不幸的是它不起作用。我想要实现的只是我为每一行选择的日期是客户关系的生效日期。
该ci_per_per
表包含以下列:
per_id1
, per_id2
, start_dt
,end_dt
per_id1
是父母,per_id2
是孩子。
start_dt
并end_dt
定义关系的持续时间
我得到的 sql 错误是:END_DT1: Invalid identifier.
有没有办法在 oracle 中实现这个功能?
示例场景:
现在我希望所有记录都01-01-2011
作为他们的开始日期。但是,如果层次结构颠倒(意味着交换 per_id_1 和 Per_id2 值),则记录应按原样显示。
请注意,对于上面的示例,我们需要使用start with
带有条件的子句来运行它per_id2='A'
。此外,请了解如果您使用per_id2='B'
因此,当我从per_id2='B'
结果开始时应该使所有记录成为01-01-2010
而不是01-01-2011
现在有了结束日期,它应该01-01-2011
适用于所有记录,除了带有 E 的记录和带有 A 的记录。结束日期将是null
(假设我们从 A 开始)。
sql - 通过从两个(从和到)值计算非中断周期进行分组
可以使用哪种 Oracle SQL 技术来连接这些行:
对于这样的结果:
? 假设from
and是一个整数周期的开始和结束,并且有必要为'sto
选择一个非中断周期id
只是寻找正确的方向和例子,这可以使用group by
orconnect by
或其他东西来完成吗?
数据库是Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
sql - 分层导入单查询解决方案——Oracle
我有一个有趣的问题,至少我是这么认为的。所以,我有一个具有上述结构的表(codes_table)(它是一个树形菜单),树由两个整数加上一个点模式(总是)定义,如下所示:
我需要的是向一个新表生成插入脚本,该表的结构具有数字 ID,其父亲的外键将实际 COD_MENU 作为名称放在新结构上,如下所示:
我已经在带有递归过程的 plsql 块代码中做到了这一点。以上是我的真实代码供参考。
我要做的是在单个查询中使用 CONNECT BY / START WITH / ROWNUM 和 LEVEL 语句来完成它,并在必要时使用同一个表进行连接。我尝试了很多东西,但无法找到解决方案。这只是出于好奇。
我能做的最接近的事情是上面的选择,但我只有父亲的 ID 而不是太阳
感谢您的时间和帮助。
sql - ORACLE分层查询中的总结
我需要一些建议,因为我对分层查询很陌生:(即我有下表:
我想通过层次结构计算价格,得到以下结果:
我已经想象过,应该使用 CONNECT BY PRIOR 语句并编写了一个贯穿层次结构的查询:
我真的可以使用一些帮助来获取价格。
比你!
sql - 不能同时使用 CONNECT BY 和 GROUP BY
我有两张桌子——员工和经理。一位经理有许多员工。我想使用 CONNECT BY 和 GROUP BY 命令在父子关系中显示它。
EMPLOYEE 表的结构:
经理表的结构:
我写了这个查询:
它给出了这个错误:
这个 group by 子句有什么问题?
sql - ORA-01436 尝试导出 CONNECT BY PRIOR 结果时
我在 Oracle 中有一个表,它有两列:CODIGO_DA_CONTA_PAI
和CODIGO_DA_CONTA_FILHO
(基本上是指父项和子项)。
对于父 CT-0000000000、子和子的子,需要更新另一列(但现在我只是尝试选择层次结构)。
当一个 Child 有一个或多个 Child 时,它也会出现在 Parent 列中。
当我运行下面显示的此查询时,它会显示结果,但是当我尝试导出、用 SELECT 子句括起来或向下滚动结果集时,出现错误消息编号 01436。
从我阅读的内容来看,它似乎正在生成一个永远不会结束的结果集。
我怎样才能让它正常工作?我的代码是正确的还是我遗漏了什么?