【问题标题】:Oracle SQL get level of a recursive with a subqueryOracle SQL 使用子查询获取递归级别
【发布时间】:2021-12-26 10:39:47
【问题描述】:

我想在我的语句中获取级别并构建一个子查询以将其放入我的语句中。当我执行我的语句时,我得到了错误:

ORA-01427:单行子查询返回多于一行
01427. 00000 - “单行子查询返回多行”
*原因:
*行动:

这是我的声明:

SELECT 
    a.id, b.identifier, 
    (SELECT level
     FROM buik b, material m
     WHERE b.auftrag = m.auftrag
     START WITH b.identifier = 'B091000656'
     CONNECT BY PRIOR m.istcharge = b.identifier )
FROM aston a, buik b

【问题讨论】:

  • 你的主查询和子查询没有关联
  • Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI JOIN 语法-92 SQL 标准(近 30 年前),不鼓励使用它

标签: sql oracle recursion subquery oracle-sqldeveloper


【解决方案1】:

分层查询返回多行。 这就是 ORA-01427 错误的原因。 我想,您需要重写/更正您的查询,具体取决于您的任务:

  1. 优化子查询中的参数,以便在 1 行中返回正确的数据集
  2. 正确重写您的 sql 查询。

其他链接: SQL Subquery

SQL correlated

【讨论】:

    猜你喜欢
    • 2013-01-31
    • 2020-11-27
    • 1970-01-01
    • 2013-09-15
    • 2021-02-19
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    相关资源
    最近更新 更多