EXCEPT 演算

EXCEPT/MINUS 演算は 2 つの照会の差を取り、最初の照会にだけ属する行が演算結果に含まれます。

EXCEPT と MINUS はシノニムです。 いずれか一方を SQL 文で使用することができます。

INTERSECT と EXCEPT には以下のような違いがあります。
  • INTERSECT B には、表 B の行と重複する表 A の行が含まれます。
  • EXCEPT B には、表 B に存在しない表 A の行が含まれます。

EXCEPT

EXCEPT [DISTINCT] または MINUS [DISTINCT] 演算では、最初の入力表でタプル t が m (> 0) 回出現し、2 つ目の入力表で同じタプル t が n (>= 0) 回出現した場合、(m > 0 && n == 0) であれば、そのタプル t は出力表で一度だけ出現することになります。
{0,1,2,2,2,2,3,N,N} EXCEPT {1,2,2,3,5,5,N,N,N}
Ë{0}

EXCEPT ALL

EXCEPT ALL 演算または MINUS ALL 演算では、最初の入力表でタプル t が m (> 0) 回出現し、2 つ目の入力表で同じタプル t が n (>= 0) 回出現した場合に、(m - n) > 0 であれば、出力表にタプル t が (m - n) 回出現します。
{0,1,2,2,2,2,3,N,N} EXCEPT ALL{1,2,2,3,5,5,N,N,N}
Ë{0,2,2}