logo

SQL |マイナス演算子

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

絵画表現 :

SQLマイナス' title=

上の図からわかるように、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オペレーターを代替として使用します。
クイズの作成