Sql 交叉应用选择不会返回预期结果

Sql 交叉应用选择不会返回预期结果,sql,oracle,Sql,Oracle,但我已经预料到了 L A 1 1 2 1 3 1 因为 L A 2 1 3 1 3 2 您的问题反映了对分层查询的一个常见误解。即: “连接方式”条件仅适用于标高2及以上。如果没有start with子句,则始终会生成级别1。级别1的条件在start with子句中给出,而不是在connect by中给出 要获得所需的结果,必须添加一个start with子句,条件相同,即level

但我已经预料到了

L A
1 1
2 1
3 1
因为

L A
2 1
3 1
3 2

您的问题反映了对分层查询的一个常见误解。即:

“连接方式”条件仅适用于标高2及以上。如果没有start with子句,则始终会生成级别1。级别1的条件在start with子句中给出,而不是在connect by中给出

要获得所需的结果,必须添加一个start with子句,条件相同,即level 但是,测试修改后的查询结果时出错;这是由多个级别深度的相关性引起的,这实际上是一个与交叉应用相关的问题,而不是与分层位相关的问题


编辑-实际上,在start with子句中使用level似乎也没有达到预期效果。不过,我不打算回答这个问题——关于你的期望为何不正确的解释仍然有效

当我运行这个代码时,我得到了四行。这表明start with将起始级别视为0,因此如果我们使用start with level+1L A 2 1 3 1 3 2
select level a from dual connect by level < 1 -> Null
select level a from dual connect by level < 2 -> 1
select level a from dual connect by level < 3 -> 1,2