问题标签 [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 回答
428 浏览

sql - 使用 CONNECT_BY_ROOT 的左外连接

我有

并希望CONTENTNAME从 table 添加到每个条目列CONTENT

我试过了:

期望相同的结果,仅CONNECT_BY_ROOT使用 1 个额外的列:CONTENTNAMEfrom CONTENT,关联 by IDCONTENT; NULL如果没有关联的内容(IDCONTENTNULL)应该是

相反,我只得到IDCONTENTis not的行NULL。我还能做些什么来获得这些行?

我也试过:

而且我也试过

但我得到相同的结果(只有IDCONTENT不是的值NULL

最奇怪的是,查询昨天在开发数据库上按预期工作,但现在不是。所以我创建了一个小提琴来检查我是否可以重现以前的结果并且它工作正常...... http://sqlfiddle.com/#!4/ecb9d/1 http://sqlfiddle.com/#!4/ecb9d /3

是什么导致了这种行为变化?

0 投票
1 回答
142 浏览

sql - 在 CONNECT-BY 查询中没有得到全系列乘法(产品)

我有一个 CONNECT BY 查询,但没有得到想要的结果。

最终的子查询和查询应该产生将一串百分比相乘的乘积。

它从每年的保留百分比 (PCT) 表开始。随着查询的进行,它应该取第一年的 PCT 并乘以第二年的 PCT,依此类推,直到达到所需的深度。效果应该类似于交叉表中的对角线相乘,其中 YR(年份)和 yset 代表起始行和列。

随着查询的进行,我没有得到完整的字符串,我只得到最后两个百分比的结果。

这可能是一个简单的错误,但额外的眼睛将有助于更快地发现它。

代码:

我在http://sqlfiddle.com/#!4/ce945/1/0
的 SQLFiddle 中设置了一个示例 该示例使用 WITH 来设置一些虚拟数据。

结果示例将是:(期望的结果)

(当前/错误结果)

为什么我没有得到完整的(乘法)乘积?我能做些什么来解决这个问题?任何人...?任何人?布勒?

更新:吃桃子提供了获得真正累积结果所需的修复。由于我手工定制了隐藏常规数据范围的样本数据,我不得不更新该示例:连续 50 年以上的行,每年最多 70 个 YCS。更新后的查询做了连续累积产品,我的要求是“对角连续累积产品”。我保留了日志添加解决方案并添加了 CONNECT BY 回来。

http://sqlfiddle.com/#!4/1c326/2

显示起点和深度的一些默认值。

再次感谢!

0 投票
1 回答
247 浏览

oracle - Oracle 同级结构

我有一个在数据库表中存储相等记录的结构。你可以认为这些记录是兄弟。例如我在这张表中有两条记录;1=2 和 1=3。我需要一个查询来返回给定记录的所有兄弟姐妹。让我举个例子;

这是我的表,有两列:

我有 2 条记录,1=2 和 1=3

我认为使用 connect by 是这种情况的最佳解决方案,并编写以下查询:

此查询返回正确的结果,返回两行。

如果我使用 2 作为参数,查询也会正确运行,再次返回两行。

但是如果我使用 3 作为参数,查询不会像我预期的那样运行,只返回起始行。

我想知道为什么 2 和 3 的结果不同。任何帮助或想法都会被应用。

谢谢。

0 投票
1 回答
1041 浏览

sql - Oracle 通过嵌套子查询连接

我有 2 张桌子。第一个包含对第二个表的引用,而第二个表是自引用的。
以下是示例表

预期结果

选择查询

但是这样做会引发异常

请建议解决方法。非常感谢。

0 投票
2 回答
103 浏览

oracle - 使用 Oracle 获取最后十天的销售额,即使当天没有

我正在尝试选择过去 10 天的销售数据,并在没有销售的情况下包含 0 的日期。

为此,我正在尝试使用双重和按级别连接,但我不知道为什么日期不匹配,并且查询失败。

这是基本的工作查询:

结果:

所以我认为这会很好,现在我有了我想要的日期,我可以尝试添加一个子查询来获取销售额(我考虑过加入,但不清楚如何加入查询中的级别):

但是,它总是返回 0,即使在我知道有销售的日子里:

0 投票
0 回答
1325 浏览

greenplum - Greenplum 中是否支持递归查询

oracle中有一个正在使用的查询CONNECT BY,我的要求是我需要将它迁移到Greenplum Sql

我发现 n 尝试使用递归类,但低于错误

********** 错误 **********
错误:不支持 WITH 子句中的 RECURSIVE 选项
SQL 状态:0AM00

我没有得到任何解决方案,也让我知道/发布您与递归类一起使用的任何查询或示例

要求是

我有一张像这样的桌子:

需要使用类似于 Oracle 的输出如下所示connect by

这可能吗 ?

0 投票
2 回答
880 浏览

sql - 在层次查询中使用先验

我正在尝试在我的项目中实现分层查询。我已经阅读了互联网上的大部分文件,但无法获得与使用 PRIOR 相关的信息。

PRIOR 在此查询中起着重要作用,但是更改 PRIOR 的位置或从查询中删除它会给我带来不同的结果。
如果您能帮助我理解它的确切用途,那将非常有帮助。
谢谢 :)

0 投票
1 回答
151 浏览

sql-server - Oracle“开始于”自下而上递归 SQL Server 等效

我看过很多帖子,这些帖子涉及如何将 Oracle“先连接”语句转换为 SQL Server 公用表表达式。但是,我有一个 Oracle“先连接”语句,上面有一个“以 ('value1','value2','value3') 中的字段名开头”子句,我没有看到任何关于如何将此转换为 SQL Server。我相信这被认为是“自下而上”的递归。

这是我的 Oracle 查询:

样品表:

样本数据:

我的查询应该如下工作:

  • 将包括 CHILD-A1 及其父母:TOP、PARENT-A、CHILD-A1
  • 将包括 CHILD-C1 及其父母:TOP、PARENT-C、CHILD-C1
  • CHILD-A2 将被排除在外,因为 CHILD-A2 不在我的列表中。PARENT-A 将被包括在内,因为 CHILD-A1 在我的列表中。
  • PARENT-B 和 CHILD-B1 将被排除在外,因为 CHILD-B1 不在我的列表中。
  • 最终的不同结果集将是 TOP、PARENT-A、CHILD-A1、PARENT-C、CHILD-C1

我希望我已经很好地解释了这一点。今天我一直在寻找适合这个的例子。任何投入将不胜感激。

0 投票
1 回答
188 浏览

oracle - 不知道如何编写 connect by 子句

我有以下查询在oracle的EMP表中查找不是经理的员工

我需要使用 start with connect by 子句进行输出,从而避免自连接

0 投票
1 回答
178 浏览

oracle - 将 Oracle SQL 转换为 PostgreSQL

我在将脚本从 Oracle 转换为 Postgres 时遇到问题:

我在 Postgres 中试过这个:

我有错误:

错误:运算符不存在:文本 + 整数

我不知道如何返回与 Oracle 完全相同的结果。