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+1
L 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