问题标签 [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.

0 投票
1 回答
1694 浏览

sql - 在 Oracle 中生成连接字符串的快速方法

当邪恶的编码再次出现时,我们不讨厌吗?

前段时间我需要生成一个连接一些字段的字符串,以便稍后进行更多处理。我认为如果直接在查询中这样做是个好主意,并使用 SO 的帮助来获取它。有效。一阵子...

桌子变大了,现在这个技巧(我知道这是非常低效的)并不完全可行。这就是我正在做的:

这很好地产生了:

正如您可能已经注意到的那样,这里的邪恶之处在于where rn = cnt,如果您删除它,您将看到 Oracle 真正在做的所有工作(我想):

我实际上在很多我没有太多记录的地方使用它。大约有 50 万条记录是相当不错的。

最近我在一张有~15Mi 记录的表中尝试了同样的方法,而且……不好。

问题:有没有办法在 Oracle 上更有效地执行此操作,或者是时候将其归结为实际代码了?这不是真正的核心问题,所以我仍然可以负担得起,只要它很快……值得一提的是,我正在使用的“usrid”列有一个索引。

干杯,

0 投票
1 回答
1073 浏览

sql - SQL 优化:CONNECT BY ... START WITH

我有一个使用CONNECT BYSTART WITH语句的查询,如下所示。IN 子句中的查询运行时间不到 5 秒,并返回 3000 行。fact_table包含 20M 的记录。我如何在下面优化这个 SQL,因为这个查询需要永远运行:(

0 投票
2 回答
3148 浏览

sql - 如何在teradata中按级别转换连接

我试图将oracle的按级别连接功能转换为teradata。我在网上看过很多例子,但这个特别的例子不同,

如果你们有任何想法,请告诉我。

0 投票
2 回答
8636 浏览

oracle - Oracle CONNECT BY - 仅返回第一级项目

我正在尝试选择一个父产品及其所有子产品;如果愿意,请分解物料清单 (BoM)。这应该是一个足够简单的任务,但我没有得到预期的结果。

我希望看到以下结果:

..但是,我只返回了第一行(父级)。

注意:该表有一个复合键 part_no/serial_no,从这个例子可以看出,父级通常从其中一个子级继承 serial_no。我不确定这些问题中的任何一个是否会使事情复杂化,但显然有些地方出了问题。

为什么我的查询没有深入到整个层次结构?

0 投票
2 回答
6962 浏览

sql - Oracle CONNECT BY 分层查询中对父列的引用

我的数据如下所示:

这是分层数据,我将查询根复合键(在本例中09/10 10000 A1234);该FLAG字段是指由LKEYx键标识的“对象”。可以有任意数量的嵌套级别。(请注意,KEY1andKEY3字段不必像上面的示例中那样保持不变,只要保留层次结构即可。)

我要检索的是叶子节点,但是如果叶子的父节点与第二个字符KEY2的长度相同LKEY2或包含一个X,则返回直接父节点。在这种情况下,我们还需要将记录标记为可选......所以,像这样:

我写了一个这样的查询,但它并不漂亮。此外,为了区分可选记录,它假设所有叶子节点都在树的同一层;但是,这不一定是正确的。我的查询如下:

原因queryKeys是因为它在更大的查询中的其他地方使用并且可以包含多个记录。maxTree部分是问题,超出了一般的怪癖!

现在,这篇文章标题的原因是因为如果我可以引用父字段,这个查询可以更直接。FLAG我尝试了一种JOIN方法来实现这个想法——在相关键上将树与自身连接——但是,除非我弄错了,否则会导致递归问题,你必须不断迭代树才能找到正确的父键(因为KEYxLKEYx字段都定义了记录的完整组合键)。

(PS 使用 Oracle 10gR2,如果它有所作为。)

0 投票
1 回答
3713 浏览

sql - 在 Connect By Prior Query 中搜索由 SYS_CONNECT_BY_PATH 创建的路径

我正在使用 Connect By 查询来显示组上的分层组,在此页面上,我有一个用于选择父组的组合框。但我想隐藏所有包含当前正在编辑的组的行。

这是我的桌子,

我的第一个查询是;

这个结果在网格上。

例如;

在页面上Editgroup.aspx?group_id=24 它显示了所有这些行,但我想隐藏所有包含 GROUP_ID = 24 的行路径,因为 Group 不能是 selfchild。

我找到了这个查询的临时解决方案;

24 来自 url。

我认为当我们得到大数据时,它不会成为未来的有效解决方案。

如何更智能地检测路径是否包含此 ID?

0 投票
1 回答
7915 浏览

sql - oracle sql中的CONNECT BY和START WITH子句

我想要下面给出的测试数据的分层数据。对于用户“jones”,它应该获取以下记录。我遇到了 CONNECT BY 和 START WITH 子句的问题。我还认为 menu_items 和 role_menu_items 表之间存在一些 JOIN 问题。

对于用户及其相应的角色,我需要检查以下数据

输出


0 投票
1 回答
191 浏览

oracle - Oracle Connect By 查询结果集随机不在层次结构中

我使用 startwith 和 connectby 准备了几个查询来获取具有父子关系的表的所有项目。

到目前为止,这些查询工作得很好。但是现在,我注意到返回的层次结构不一样。尽管数据相同,但层次结构以完全随机的方式返回。

任何人都可以提出为什么会这样..

以下是示例查询:

0 投票
3 回答
10765 浏览

oracle - oracle由多个父母连接

我在使用 connect by 时遇到问题。

我有一个查询,通过它我检索了几列,包括这三个:

  • ID
  • 父母ID
  • 对象 ID

现在对于相同的IDand 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

上面的查询没有导致我需要的适当的层次结构。

0 投票
1 回答
5079 浏览

sql - 如何通过sql获取oracle connect中的最终父id列

1 像这样创建表

2 当我运行这个脚本时,输出将是

3 问题:如果我想要这个结果,我应该如何编写代码?