SQL Server’da EXCEPT ve INTERSECT Kullanımı
Herkese merhaba,
Bu yazıda SQL Server’da EXCEPT ve INTERSECT kullanımı ile ilgili bilgi vermeye çalışacağım.
SQL Server’da EXCEPT ve INTERSECT ifadeleri çok kullanılan ifadeler değildir ama yerine göre çok kullanılan yapılardır.
EXCEPT KOMUTU: Except komutu iki farklı sql sorgusundan birinin sonuç kümesinde olup diğerinin sonuç kümesinde olmayan kayıtları listeleyen bir komuttur. Örneğin Employees ve Customers adında iki farklı kümeniz olsun. Except komutu Employees kümesinde bulunup Customers‘de bulunmayan kayıtları listeleyip gösterecektir.
INTERSECT KOMUTU: Intersect komutu ise iki farklı sql sorgusunun kesişim noktasını bulur. Yine küme örneğine dönecek olursak Intersect komutu Employees ve Customers kümelerinin ikisinde de bulunan kayıtları listeleyip gösterecektir.
Yukarıda teorik tarafını anlattığımıza göre şimdi örnek üzerinden konuyu inceleyelim.
--Tabloların oluşturulması
CREATE TABLE KitapTablosu1
(
Id INT,
KitapAdi VARCHAR(50) NOT NULL,
Kategori VARCHAR(50) NOT NULL,
Ucret INT NOT NULL
)
CREATE TABLE KitapTablosu2
(
Id INT,
KitapAdi VARCHAR(50) NOT NULL,
Kategori VARCHAR(50) NOT NULL,
Ucret INT NOT NULL
)
--Tablolara veri eklenmesi
INSERT INTO KitapTablosu1
VALUES
(1, 'Kitap1', 'Kategori1', 1800),
(2, 'Kitap2', 'Kategori2', 1500),
(3, 'Kitap3', 'Kategori3', 2000),
(4, 'Kitap4', 'Kategori4', 1300),
(5, 'Kitap5', 'Kategori5', 1500),
(6, 'Kitap6', 'Kategori6', 5000),
(7, 'Kitap7', 'Kategori7', 8000),
(8, 'Kitap8', 'Kategori8', 5000),
(9, 'Kitap9', 'Kategori9', 5400),
(10, 'Kitap10', 'Kategori10', 3200)
INSERT INTO KitapTablosu2
VALUES
(6, 'Kitap6', 'Kategori6', 5000),
(7, 'Kitap7', 'Kategori7', 8000),
(8, 'Kitap8', 'Kategori8', 5000),
(9, 'Kitap9', 'Kategori9', 5400),
(10, 'Kitap10', 'Kategori10', 3200),
(11, 'Kitap11', 'Kategori11', 5000),
(12, 'Kitap12', 'Kategori12', 8000),
(13, 'Kitap13', 'Kategori13', 5000),
(14, 'Kitap14', 'Kategori14', 5400),
(15, 'Kitap15', 'Kategori15', 3200)
--EXCEPT Komutunu inceleyelim
SELECT Id,
KitapAdi,
Kategori,
Ucret FROM KitapTablosu1
EXCEPT
SELECT Id,
KitapAdi,
Kategori,
Ucret FROM KitapTablosu2
--INTERSECT komutunu inceleyelim
SELECT Id,
KitapAdi,
Kategori,
Ucret FROM KitapTablosu1
INTERSECT
SELECT Id,
KitapAdi,
Kategori,
Ucret FROM KitapTablosu2
Except komutunu tablolar üzerinde uyguladığımız zaman aşağıdaki sonucu göreceksiniz.
Intersect komutunu tablolar üzerinde uyguladığımız zaman aşağıdaki sonucu göreceksiniz.
Görüldüğü üzere EXCEPT ve INTERSECT komutlarının kullanımı öğrenilmiş olundu.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.