oracle – クエリでのORDER BYでMINUSを使用する方法
マイナス演算子を使用するときは、ORDER BY句を直接クエリで使用することはできません。マイナス演算子は1番目のクエリ結果から2番目のクエリ結果と同じ行を減算するために使用します。ただし、マイナス演算子をサブクエリに入れて、外部クエリでORDER BY句を使用することで、必要な並び替えを実現できます。
次のクエリ例は、MINUS演算子の使用時にORDER BYを行う方法を示しています。
SELECT col1, col2, col3
FROM (
SELECT col1, col2, col3
FROM table1
MINUS
SELECT col1, col2, col3
FROM table2
)
ORDER BY col1;
上記のクエリでは、まずテーブル1からテーブル2と同じ行を差し引くためにマイナス演算子を実行します。その後、外部クエリでORDER BY句を利用して結果をソートし、col1列の値で昇順に並べ替えます。
注意点はMINUS演算子を使用する際には列数とデータ型を合わせなければならない点です。複数の列でソートする場合はORDER BY句に列を追加するだけでよい。