根据输入参数使用内部或外部连接 - 不使用动态 sql

Using inner or outer join based on input parameter - without using dynamic sql

可以根据参数的值来调节外部或内部的连接,而无需使用动态 sql?

如果过滤器在 table 上,则您正在外部加入

select some_columns
  from left l
       left outer join right r
         on( l.right_id = r.right_id )
 where r.filter_column = p_some_parameter
    or p_some_parameter is null

似乎就是您所需要的。如果指定 p_some_parameter,则谓词有效地将 outer join 转换为 inner join。如果未指定 p_some_parameter,则查询仍然是 outer join.