根据输入参数使用内部或外部连接 - 不使用动态 sql
Using inner or outer join based on input parameter - without using dynamic sql
可以根据参数的值来调节外部或内部的连接,而无需使用动态 sql?
- 我的意思是,如果给定了一个参数(过滤值),那么查询必须
return 完全匹配的记录(或 0 条记录)- 充当 inner join
- 如果未提供此过滤器,则需要 return 所有
记录 - 作为 外连接
如果过滤器在 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
.
可以根据参数的值来调节外部或内部的连接,而无需使用动态 sql?
- 我的意思是,如果给定了一个参数(过滤值),那么查询必须 return 完全匹配的记录(或 0 条记录)- 充当 inner join
- 如果未提供此过滤器,则需要 return 所有 记录 - 作为 外连接
如果过滤器在 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
.