Yandex Metrica
SQL Server'da INTERSECT Kullanımı - Yasin Sunmaz

Yasin Sunmaz

Kodladıkça değişen bir dünya...

SQL Server'da INTERSECT Kullanımı

20.05.2022 yasinsunmaz 2333 0

SQL Server'da bir önceki yazımda EXCEPT komutunu sizlere anlatmaya çalıştım. EXCEPT komutu gibi INTERSECT komutu ile bir sorgunun sonuç kümesi ile başka bir sorgunun, başka bir sonuç kümesinde ortak olanları bulmak için kullanıyoruz. Kısaca sizin ilk sorgunuzdan elde edilen veri listesi ile ikinci sorgunuzdan elde edilen veri listesinde ortak olanları sonuç olarak döndürür. Yazının devamında açıklama ve örnekler ile rahatça anlayabileceksiniz.

Bu yazdığım sorguları Nortwind veri tabanı üzerinden yaptım. Veri tabanını indirmek için buraya tıklayabilirsiniz. Veri tabanını SQL Server üzerinden açıp script kodunu çalıştırabilirsiniz. SQL Server'da script dosyasını nasıl çalıştırılır bilmiyorsanız SQL Server Script Alma ve Çalıştırma adlı yazılımı inceleyebilirsiniz.

INTERSECT Kullanımı

Aşağıda SQL Server INTERSECT komutunun sözdizimi gösterilmektedir:

query_1
INTERSECT
query_2

Yukarıdaki sözdiziminde iki sorgunun sonuç kümelerini birleştirmek için kurallar şunlardır:

  • Her iki sorguda da sütun sayısı ve sırası aynı olmalıdır.

  • İlgili sütunların veri türleri aynı veya uyumlu olmalıdır.

Veri Kümesini Karşılaştırma

Şimdi aşağıdaki görsele baktığımızda T1'de 1,2,3 ve T2'de 2,3,4 kayıtlarının olduğunu ve INTERSECT komutu ile sorgulandığında ise kırmızı olarak belirtilen alanın bize sonuç olarak döndüğünü görebiliyoruz. Buradaki durum T1 ile T2'nin ortak verileri olan 2 ve 3 numaralı kayıtlar yer alıyor. Her ikisinde de 2 ve 3 olmasından dolayı bize 2 ve 3 şeklinde sonuç dönüyor.

Özetle T1'de ve T2'de olan kayıtları getirmiş oluyor.

 

SQL Server'da INTERSECT Kullanımı

SQL Server INTERSECT Komutu Uygulaması

Products ve OrderDetails tabloları arasında bir birleştirme yapıp Products tablosunda ve Order Details tablosunda olan ProductID değerlerini listeleyeceğiz. Az önce bahsettiğimiz hususlara dikkat ederek çekilen sütün sayısı, sırası ve veri tipi aynı olmalıdır. Buna dikkat ederek Products tablosundan sadece ProductID değerini seçip, OrderDetails tablosundan da yine ProductID değerini seçiyoruz. Veri tipleri ikisinin de int olduğu için bir sorun olmayacak. Products tablosunun sorgusunu yazıp araya INTERSECT komutunu ekliyoruz. Sonrasında ise OrderDetails tablosunun sorgusunu yazıp sorgumuzu Execute veya F5 ile çalıştırıp sonucu görebiliyoruz.

SELECT
    p.ProductID
FROM
    Products p
INTERSECT
SELECT
    od.ProductID
FROM
    [Order Details] od

Sorgu Sonucu

Sorguyu çalıştırdığınızda Products tablosunda ve OrderDetails tablosunda olan 77 adet kayıt görmekteyiz.

SQL Server'da INTERSECT Kullanımı

Durumu Test Etme

Şimdi de durumu iyice anlamak için Products tablosunda 70 ID değerine kayıt olduğunu teyit etmek için sorgumuzu yazıp sonuca baktığımızda kaydın olduğunu görebilirsiniz. Ayrıca OrderDetails tablosunda 70 ID değeri kayıt olup olmadığını teyit etmek için sorgumuzu yazıp sonuca baktığımızda da kaydın olduğunu görebilirsiniz. INTERSECT komutu ile ilk tablo ile ikinci tabloda aynı olan değerlerin sonucu böyle görebilmekteyiz. Bazı durumlarda gerçekten işinizi kolaylaştıracaktır.

Kaynak

https://www.sqlservertutorial.net/sql-server-basics/sql-server-intersect/

Umarım faydalı olmuştur. İyi çalışmalar.

  • Yorum yapabilmek için giriş yapmalısınız. Giriş yapmak için tıklayınız.

Diğer Yazılar

SQL Server Synonym Nedir ve Nasıl Kullanılır?

09.01.2026 yasinsunmaz 131 0

Bu yazımda SQL Server'da oldukça faydalı olan synonym yapısını inceleyeceğiz. Veritabanı projelerinde zamanla tablo isimleri uzar, şema yapıları deği...

SQL Server Schema Kullanımı

10.12.2025 yasinsunmaz 179 0

Bu yazımda SQL Server'da oldukça faydalı olan schema yapısını inceleyeceğiz. SQL Server’da şema yapısı özellikle orta ve büyük ö...

SQL Server'da SELECT INTO ve INSERT INTO SELECT Kullanımı

31.05.2025 yasinsunmaz 539 0

Bu yazımda, SQL Server'da oldukça sık kullanılan ve günlük veri işlemlerinde hayat kurtaran iki komutu inceleyeceğiz: SELECT INTO ve INSERT INTO SELECT. Bu ...

SQL Server'da LAG() ve LEAD() Kullanımı

23.05.2025 yasinsunmaz 548 0

Bu yazımda SQL Server'da oldukça faydalı olan LAG() ve LEAD() fonksiyonlarını inceleyeceğiz. Bu fonksiyonlar, bir satırdaki veriye bakarken, o satırın öncesindeki v...

SQL Fonksiyonları: Veritabanlarında Güçlü ve Esnek İşlemler

09.06.2023 yasinsunmaz 1462 0

SQL (Structured Query Language), veritabanı yönetim sistemlerinde verileri yönetmek, sorgulamak ve işlemek için yaygın olarak kullanılan bir dildir. SQL fonksiyonl...