[ Oracle ] 結合演算子 ( + ) で外部結合クエリ

Pocket

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 にはない制約や制限があるとのことです。

参考

 

スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *