小编s k*_*han的帖子

在SQL中使用LEFT OUTER JOIN中的CASE语句

我有一个场景,我想在外部联接中切换两个不同的表.它是这样的: -

         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)

......但它不起作用.有什么建议?

sql oracle plsql left-join

5
推荐指数
1
解决办法
3万
查看次数

使用CONNECT BY通过Oracle中的SQL查询获取层次结构中的所有父项和一个子项

我正在浏览一些关于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)

有没有更好的方法来做到这一点,一些更优化的解决方法?

sql oracle hierarchy

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

oracle ×2

sql ×2

hierarchy ×1

left-join ×1

plsql ×1