Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

T-SQL’de Except Operatörü İle İki Tablo Arasındaki Verisel Farkı Bulmak

Merhaba,

Önceki yazılarımdan T-SQL’de Not In Fonksiyonu İle Tablolar Arasındaki Verisel Farkı Bulma başlıklı makalemde Not In fonksiyonu ile iki tablo arasındaki farkı bulmuş ve tablo olarak elde etmiştik. Şimdi ise benzer mantıkta Except operatörünü kullanarak aynı işlemi gerçekleştirmeye çalışacak ve Not In fonksiyonu ile işlevsel farkını ele alacağız.

İlk olarak Not In fonksiyonunu ele alırsak eğer;

Not In fonksiyonu, iki tablo arasındaki farkı belirtilen kolonlar üzerinden algılamakta ve sonucu döndürmektedir.
T-SQL'de Not In Fonksiyonu İle Tablolar Arasındaki Verisel Farkı Bulma
Örnekte de gördüğünüz üzere iki tablo arasındaki “PersonelId” kolonu baz alınarak fark hesaplanmakta ve sonuç elde edilmektedir. Burada her iki tabloda da diğer kolonların içerikleri önem arz etmemekte, sade ve sadece belirtilen kolonlar üzerinden fark hesabı yapılmaktadır. Bu hesabın mantığı ise, belirtilen kolona ait birinci tabloda olup ikinci tabloda olmayan tüm satırları getirmektir.

Except operatörü ise; iki tablo arasındaki tüm verileri dikkate almakta ve herhangi bir kolonda değişiklik söz konusuysa algılamakta ve bizlere sonuç tablosunda sunmaktadır.

Bu yapıya en güzel örneği; biri sorgu sonucu elde edilen, bir diğeri ise fiziksel olarak var olan birebir aynı tablolar üzerinde verebiliriz.
T-SQL'de Except Operatörü İle İki Tablo Arasındaki Verisel Farkı Bulmak
Dikkat ederseniz eğer Except operatöründen önce verilen sorgu fiziksel tablomuzken, sonra verilen ise farklı bir kompleks sorgu neticesinde birebir oluşturulan tablodur. Haliyle Except operatörü ilk tablodaki verilere nazaran herhangi bir kolonda farklı olan tüm satırları sonuç tablosuna eklemekte ve bizlere ayrı bir tablo olarak döndürmektedir.

Son olarak, Not In fonksiyonu belirli bir kolon bazlı farkı yakalarken, Except operatörü ise satırın bütününü yani tüm kolonları hesaba katarak farkı yakalamaktadır diyelim ve her iki komut arasındaki mantıksal ve işlevsel farkı tekrar mahiyetinde pekiştirdikten sonra makalemizi sonlandıralım.

Sonraki yazılarımızda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir