Menggunakan operator INTERSECT dan EXCEPT

Selesai

INTERSECT dan EXCEPT membandingkan dua tataan hasil dengan satu sama lain, dan menampilkan baris yang sama, atau baris yang muncul dalam satu tataan hasil tetapi tidak muncul di tataan yang lain.

INTERSECT dan EXCEPT paling mudah dipahami jika dijelaskan dengan menggunakan diagram Venn. Lingkaran dalam diagram di bawah ini mewakili dua tataan hasil dari tabel produk, tataan pertama menampilkan ProductID 500 sampai 750, dan ProductID kedua menampilkan 751 sampai 1000. Kami ingin tahu warna apa yang ada di kedua tataan hasil, dan warna mana yang ada dalam satu tataan, tetapi tidak ada dalam tataan hasil yang lain. Kami akan menggunakan INTERSECT dan KECUALI untuk mengetahui hasilnya.

INTERSECT Menampilkan baris yang ada di kedua tataan hasil.

An image of a Venn diagram showing INTERSECT results.

EXCEPT Menampilkan baris yang berbeda dari kueri input sebelah kiri, yang bukan merupakan output dengan kueri input sebelah kanan.

An image of a Venn diagram showing EXCEPT results.

Dalam contoh kode berikut, Anda ingin tahu warna apa yang muncul di kedua tataan hasil dari tabel produk:

SELECT color FROM SalesLT.Product
WHERE ProductID BETWEEN 500 and 750
INTERSECT
SELECT color FROM SalesLT.Product
WHERE ProductID BETWEEN 751 and 1000;

Dalam contoh ini, Anda ingin tahu warna apa yang ada di tataan hasil pertama, tetapi TIDAK ada di tataan hasil kedua. Dalam hal ini, gunakan operator EXCEPT:

SELECT color FROM SalesLT.Product
WHERE ProductID BETWEEN 500 and 750
EXCEPT
SELECT color FROM SalesLT.Product
WHERE ProductID BETWEEN 751 and 1000;

Perhatikan bahwa hasilnya berbeda, tergantung pada urutan kueri. Jadi kueri di atas akan menampilkan tataan hasil yang berbeda dengan tataan di bawah ini:

SELECT color FROM SalesLT.Product
WHERE ProductID BETWEEN 751 and 1000
EXCEPT
SELECT color FROM SalesLT.Product
WHERE ProductID BETWEEN 500 and 750;