问题标签 [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.
sql - 在 Oracle 中生成连接字符串的快速方法
当邪恶的编码再次出现时,我们不讨厌吗?
前段时间我需要生成一个连接一些字段的字符串,以便稍后进行更多处理。我认为如果直接在查询中这样做是个好主意,并使用 SO 的帮助来获取它。有效。一阵子...
桌子变大了,现在这个技巧(我知道这是非常低效的)并不完全可行。这就是我正在做的:
这很好地产生了:
正如您可能已经注意到的那样,这里的邪恶之处在于where rn = cnt
,如果您删除它,您将看到 Oracle 真正在做的所有工作(我想):
我实际上在很多我没有太多记录的地方使用它。大约有 50 万条记录是相当不错的。
最近我在一张有~15Mi 记录的表中尝试了同样的方法,而且……不好。
问题:有没有办法在 Oracle 上更有效地执行此操作,或者是时候将其归结为实际代码了?这不是真正的核心问题,所以我仍然可以负担得起,只要它很快……值得一提的是,我正在使用的“usrid”列有一个索引。
干杯,
sql - SQL 优化:CONNECT BY ... START WITH
我有一个使用CONNECT BY
和START WITH
语句的查询,如下所示。IN 子句中的查询运行时间不到 5 秒,并返回 3000 行。fact_table
包含 20M 的记录。我如何在下面优化这个 SQL,因为这个查询需要永远运行:(
sql - 如何在teradata中按级别转换连接
我试图将oracle的按级别连接功能转换为teradata。我在网上看过很多例子,但这个特别的例子不同,
如果你们有任何想法,请告诉我。
oracle - Oracle CONNECT BY - 仅返回第一级项目
我正在尝试选择一个父产品及其所有子产品;如果愿意,请分解物料清单 (BoM)。这应该是一个足够简单的任务,但我没有得到预期的结果。
我希望看到以下结果:
..但是,我只返回了第一行(父级)。
注意:该表有一个复合键 part_no/serial_no,从这个例子可以看出,父级通常从其中一个子级继承 serial_no。我不确定这些问题中的任何一个是否会使事情复杂化,但显然有些地方出了问题。
为什么我的查询没有深入到整个层次结构?
sql - Oracle CONNECT BY 分层查询中对父列的引用
我的数据如下所示:
这是分层数据,我将查询根复合键(在本例中09/10 10000 A1234
);该FLAG
字段是指由LKEYx
键标识的“对象”。可以有任意数量的嵌套级别。(请注意,KEY1
andKEY3
字段不必像上面的示例中那样保持不变,只要保留层次结构即可。)
我要检索的是叶子节点,但是如果叶子的父节点与第二个字符KEY2
的长度相同LKEY2
或包含一个X
,则返回直接父节点。在这种情况下,我们还需要将记录标记为可选......所以,像这样:
我写了一个这样的查询,但它并不漂亮。此外,为了区分可选记录,它假设所有叶子节点都在树的同一层;但是,这不一定是正确的。我的查询如下:
原因queryKeys
是因为它在更大的查询中的其他地方使用并且可以包含多个记录。maxTree
部分是问题,超出了一般的怪癖!
现在,这篇文章标题的原因是因为如果我可以引用父字段,这个查询可以更直接。FLAG
我尝试了一种JOIN
方法来实现这个想法——在相关键上将树与自身连接——但是,除非我弄错了,否则会导致递归问题,你必须不断迭代树才能找到正确的父键(因为KEYx
和LKEYx
字段都定义了记录的完整组合键)。
(PS 使用 Oracle 10gR2,如果它有所作为。)
sql - 在 Connect By Prior Query 中搜索由 SYS_CONNECT_BY_PATH 创建的路径
我正在使用 Connect By 查询来显示组上的分层组,在此页面上,我有一个用于选择父组的组合框。但我想隐藏所有包含当前正在编辑的组的行。
这是我的桌子,
我的第一个查询是;
这个结果在网格上。
例如;
在页面上Editgroup.aspx?group_id=24
它显示了所有这些行,但我想隐藏所有包含 GROUP_ID = 24 的行路径,因为 Group 不能是 selfchild。
我找到了这个查询的临时解决方案;
24 来自 url。
我认为当我们得到大数据时,它不会成为未来的有效解决方案。
如何更智能地检测路径是否包含此 ID?
sql - oracle sql中的CONNECT BY和START WITH子句
我想要下面给出的测试数据的分层数据。对于用户“jones”,它应该获取以下记录。我遇到了 CONNECT BY 和 START WITH 子句的问题。我还认为 menu_items 和 role_menu_items 表之间存在一些 JOIN 问题。
对于用户及其相应的角色,我需要检查以下数据
输出
oracle - Oracle Connect By 查询结果集随机不在层次结构中
我使用 startwith 和 connectby 准备了几个查询来获取具有父子关系的表的所有项目。
到目前为止,这些查询工作得很好。但是现在,我注意到返回的层次结构不一样。尽管数据相同,但层次结构以完全随机的方式返回。
任何人都可以提出为什么会这样..
以下是示例查询:
oracle - oracle由多个父母连接
我在使用 connect by 时遇到问题。
我有一个查询,通过它我检索了几列,包括这三个:
- ID
- 父母ID
- 对象 ID
现在对于相同的ID
and parentID
,有多个关联的对象,例如
ID ParentID ObjectID
1 0 112
1 0 113
2 0 111
2 0 112
3 1 111
4 1 112
我正在尝试使用connect by
,但无法在适当的层次结构中获得结果。我需要它如下所示的方式。采取ID
-parentID
组合,显示所有行,ID-parentID
然后显示所有子代,ID
即其parentID
= ID
ID ParentID ObjectID
1 0 112
1 0 113
3 1 111
4 1 112
2 0 111
2 0 112
上面的查询没有导致我需要的适当的层次结构。
sql - 如何通过sql获取oracle connect中的最终父id列
1 像这样创建表
2 当我运行这个脚本时,输出将是
3 问题:如果我想要这个结果,我应该如何编写代码?