Oracle では、SQL 標準の join 句の代わりに結合演算子 ( + ) を使うことができます。ここでは、結合演算子を使ったクエリの基本を掲載しています。
スポンサーリンク
外部結合クエリサンプル
select t1.id ,t1.name ,t2.info from table1 t1, table2 t2 where t1.id = t2.id(+)
結合演算子を関数と一緒に使用するサンプル
結合演算子を関数と一緒に使用するサンプルになります。
select t1.id ,t1.name ,t2.info from table1 t1, table2 t2 where SUBSTR(t1.id, 1, 5) = SUBSTR(t2.id(+), 1, 5)
NG 例
結合演算子は関数の結果に対しては使用することができません。ORA-ERROR となります。
-- 間違った使用例 SUBSTR(t1.id, 1, 5) = SUBSTR(t2.id, 1, 5)(+) -- 実行結果 -------------------------------------------- -- ORA-00936: 式がありません。
簡単な外部結合演算子の使用方法を掲載して来ました。しかし残念ながら Oracle リファレンスによると、Oracle の結合演算子よりも FROM 句の OUTER JOIN 構文を使用することをお薦めするとのことです。結合演算子では OUTER JOIN にはない制約や制限があるとのことです。
参考