问题标签 [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-server - Oracle 'CONNECT BY PRIOR' 和 'ORDER SIBLINGS BY' 的 SQL Server 等效项
我有这个 Oracle 代码结构,我正在尝试转换为 SQL Server 2008 (注意:我在方括号“[]”中使用了通用名称、封闭的列名和表名,并进行了一些格式化以使代码更多可读):
上述代码的 SQL Server 等效模板是什么?
具体来说,我正在努力使用LEVEL和 'ORDER SIBLINGS BY' Oracle 构造。
注意: 上面的“代码”是一组 Oracle 程序的最终输出。基本上,“WHERE”子句是动态构建的,并根据传递的各种参数而变化。以“CONNECT BY PRIOR”开头的代码块是硬编码的。
以供参考:
SQL SERVER 文章中 ORACLE 的 CONNECT BY PRIOR 模拟接近了,但它没有解释如何处理 'LEVEL' 和 'ORDER SIBLINGS' 构造。......我的心变得扭曲了!
相当于:
如果我有一个初始模板可供使用,它将大大有助于我构建 SQL Server 存储过程以构建正确的 T-SQL 语句。
援助将不胜感激。
sql - Oracle 排序连接按先验分层
我有一个表,其中定义了父/子关系,但无法通过层次结构进行排序。
由于我不能使用 ORDER SIBLINGS BY 以分层方式进行排序,我将如何以如下的分层方式对其进行排序?
sql - 如何在连接中获得具有给定 ID 的完整子分支
我想从parent_id = null
给定子 ID 的子代中获取分支
结果是元素id 的完整分支:56
如何选择带有选定孩子的分支
例子:
现在结果是:
我想要实现的是给定子ID:57只选择那个分支
oracle11g - 创建链接序列
想象一下,我有由一个或多个段组成的路径。每条路径都有一个id ,您可以使用它的id检查一个段是否来自路径。每个段都有一个起点和一个终点。
问题是这些段没有按开始-结束-开始-结束排序:
分段表:
我真正需要的是对每条路径的段从开始到结束进行排序,并给它序列号,如下表所示:
这就是我想要做的:
我相信我不是到目前为止的解决方案,但我在这里遗漏了一些东西,而不是只有我需要的序列号,我得到了多个重复的序列号,就像它为每个级别创建兄弟姐妹一样序列。
此外,我有来自大约 3k 条路径的大约 4.5k 段,它给了我数百万条记录。
拜托,任何帮助都非常受欢迎。
sql - 如何使用 ORACLE 按树计算组?
现在我有一个这样的数据集;(8 条记录)
树如下:
而且我想按每个孩子计算所有总和记录(不是子孩子,子孩子的记录应该计算到它的父亲或祖父,直到第一级子节点)。
所以结果应该是:
但是,当我使用 start with connect by 和 with group by 关键字时,我无法获得预期的结果。
我的sql如下:
结果是空的..谁能帮帮我?或者谁知道 oracle group by 关键字的详细信息在与树结构一起使用时起作用?
sql - 在 Oracle 中是否有“连接方式”的替代方法?
我正在寻找替代方案CONNECT BY
:
有什么建议么?
sql - Oracle CONNECT BY 查询的索引和时间复杂度?
我有多个分层菜单存储在 Oracle 11g 表(称为items
)中,结构如下:
menu
: 项目所属菜单的 ID。id
: 菜单项的 ID。在菜单中是唯一的,但不是在表中。name
:菜单项的名称。parent
:id
菜单项的父级(总是在同一个菜单中)。
该表包含大约 100.000 行。我使用以下查询生成所有菜单项及其相应根项的列表:
(一个菜单中可能有多个根,所以我不能只使用没有连接依据的普通连接。)
我需要创建哪些索引来优化此查询?我已经有一个组合索引id
并menu
确保唯一性,但我还需要更多吗?
此外,考虑到我创建了正确的索引,这个查询的时间复杂度是多少?是否与项目总数、每个菜单的数量、菜单的深度有关?
编辑:这是输出EXPLAIN PLAN
:
但是,这只是在 100 个项目的小数据集上,因为我还没有完整的数据集。由于篇幅原因,我排除了一些列。如果您需要输出中的其他内容,请告诉我。
sql - Oracle分层查询仅选择根父母
我有一个树数据,我试图只选择根父母。数据可能是更大集合的子集,因此父级可能不为空。我想为数据集中的每棵树设置最高级别。
我希望看到结果
Rowid 4 未被选为子集的一部分是父级,但由于 4.1 是该数据集中的最高值,我想返回该行。所以基本上,我想查看每个层次结构的所有最顶层记录。
谢谢你。
sql - 如何将 pl/sql 代码制作成 Ansi-Sql?
我的问题对于 sql 专家来说可能并不具有挑战性。我想将我的 sql 重写为 ansi-sql。如何在 Oracle 中将下面的 sql 更改为 ansi-sql?
sql - 层次查询(connect by 子句)
我正在尝试使用 connect by 子句编写查询,但我无法处理。
通常我有表:
现在,我要做的是找到一个未填写付款列的帐户(甚至是父帐户)每个帐户都可以有指示其他帐户ID的父帐户(父列)。如果我在示例中展示它可能会更容易:
第一个帐户没问题 - 付款栏已填写。第二个不行,因为它是空的-但是我们可以看到有一个父帐户,所以现在我们检查 (3457 account) ,付款栏再次为空,但再次有一个父帐户 (5686),最后有一个付款栏填充。所以对于上面的情况,select 不应该显示什么如果 Table 看起来会怎样:
正如我们所看到的,唯一的变化是帐户 ID 旁边的 null 5686
,因此正确的选择应该显示帐户:4576, 3457, 5686