我有一个场景,我想在外部联接中切换两个不同的表.它是这样的: -
select mytable.id,
yourtable.id
from mytable
left outer join (case
when mytable.id = 2 then table2
yourtable on table1.id = table2.id
else
table3 yourtable on table1.id = table3.id
end)
Run Code Online (Sandbox Code Playgroud)
......但它不起作用.有什么建议?
我正在浏览一些关于CONNECT BY用法的帖子.我需要找到的是,如果我想要获得所有父母(即,最多根)和一个节点的一个孩子,例如4,该怎么办.
看来我必须使用以下两种的联合: -
SELECT *
FROM hierarchy
START WITH id = 4
CONNECT BY id = PRIOR parent
union
SELECT *
FROM hierarchy
WHERE LEVEL =<2
START WITH
id = 4
CONNECT BY
parent = PRIOR id
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点,一些更优化的解决方法?