ORACLEのSQLでよく使う演算子まとめ

ORACLEのSQLでよく使う関数や演算子をいくつか紹介します。
>>ORACLEでよく使うデータ操作SQLまとめ

SELECTの結果を結合する

<SQLサンプル>
select * from test1
UNION
select * from test2

UNION演算子を使うことでSELECTの結果同士を複数個つなげる(和集合を求める)ことが出来ます。もし重複する値も含めて全ての行を取得する必要がある場合には、下の例のようにUNION ALLを使います。

<SQLサンプル>
select * from test1
UNION ALL
select * from test2

SELECTした結果の差分を取得する

<SQLサンプル>
select * from test1
MINUS
select * from test2

MINUS演算子を使うことで、上のSELECT結果から下のSELECT結果を引き、残った差を取得することが出来ます。
データの変更前と変更後の差分を出す時などに使えます。

SELECTした結果の一致するもの(積)を取得する

<SQLサンプル>
select * from test1
INTERSECT
select * from test2

INTERSECT演算子を使うことで、上のSELECT結果と下のSELECT結果の一致する行(積)を取得することが出来ます。

NULL値かどうか

<SQLサンプル>
select * from test1 where age is null

上の例ではAGE列がNULL値のデータを検索しています。検索するときは=演算子ではなく、IS NULLを使います。NULL値と等しくない、と言う条件を追加する場合にはIS NOT NULLと書きます。

文字列を結合する

<SQLサンプル>
select id || name from test1

文字列を結合するときは || (パイプ)を使います。他にも「select name || ‘さん’ from test1」などリテラルの文字列と結合することなどもできます。

条件に合わせて値を変える

<SQL構文>
CASE 式 WHEN 式 THEN 式
[WHEN 式 THEN 式・・・] [ELSE 式] END

<SQLサンプル>
select
a.ID
,a.NAME
,case when a.AGE <= 20 then ‘young’
when a.AGE <= 30 then ‘middle’
when a.AGE <= 60 then ‘senior’
end agetype
from test1 a

条件に合わせて値を変更するには、CASE演算子を使います。
上記の例では、AGE列の値が20以下であればyoung、30以下であればmiddleのように条件に合わせて取得する結果を変えています。ELSEを設定していない場合、NULL値があるとNULLが返されます。

ORACLEのSQLでよく使う演算子まとめ” に対して1件のコメントがあります。

この投稿はコメントできません。