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}