MINUS 演算子は 2 つの場合に使用されます。SELECTステートメントを使用して、最初のクエリからの、2 番目のクエリには存在しない行のみを返します。すべての共通行をフィルターで除外し、最初の結果セットからの一意の行のみを保持します。
絵画表現 :

上の図からわかるように、MINUS 演算子は、Table1 の結果セットに存在し、Table2 の結果セットには存在しない行のみを返します。
構文:
SELECT column1 column2 ... columnN
FROM table_name1
[WHERE condition]
MINUS
SELECT column1 column2 ... columnN
FROM table_name2
[WHERE condition];
上記の構文では
- 最初の選択: オプションで WHERE 条件でフィルタリングして、table_name1 から指定された列 (column1、column2 ...、columnN) を取得します。
- マイナス: MINUS 演算子は、2 番目のクエリには存在しない最初のクエリの行を返します。
- 2 番目の SELECT: オプションで WHERE 条件でフィルタリングして、table_name2 から同じ列を取得します。
- 出力: 結果には、table_name2 には存在しない table_name1 の行が含まれます。重複は最終出力から削除されます。
テーブル :
表1
名前 | 住所 | 年 浮動小数点から文字列へ | 学年 |
|---|---|---|---|
ひどい | デリー | 20 | あ |
ガウラフ | ジャイプール | 21 | B |
練習する | ムンバイ | 21 | あ |
ダンラージ インターネットとは何ですか | コルカタ | 22 | B |
表2
名前 | 年 | 電話 | 学年 |
|---|---|---|---|
アカシュ jsonファイル | 20 | XXXXXXXXX | あ |
ディーラージ | 21 | XXXXXXXXX | B |
ヴァイバブ | 21 | XXXXXXXXX | あ |
ダンラージ | 22 | XXXXXXXXX | B |
クエリ :
SELECT NAME AGE GRADE
FROM Table1
MINUS
SELECT NAME AGE GRADE
FROM Table2;
出力:
名前 | 年 | 学年 ハイブアーキテクチャ |
|---|---|---|
ひどい | 20 | あ |
ガウラフ | 21 | B |
練習する | 21 | あ |
このクエリでは次のようになります。
- Table1 に固有の行のみを返します。
- 両方のテーブルの最後の行が同じである場合、その行は結果から除外されます。したがって、Table1 の最初の 3 行のみが返されます。
クイズの作成注記 :
- MINUS 演算子は Oracle ではサポートされていますが、SQL Server や PostgreSQL ではサポートされていません。
- これらのデータベースには、
EXCEPTオペレーターを代替として使用します。