Site icon CİN Yazılım

SQL ile İki Tablonun Kayıtlarının Karşılaştırılması

SQL'de CHARINDEX Fonksiyonu Kullanımı

SQL'de CHARINDEX Fonksiyonu Kullanımı

SQL Server da iki tablo arasındaki farkların ve benzerliklerin bulunabilmesi için EXCEPT ve INTERSECT kelimeleri kullanılır, aynı işlemi yapabilmek için join ifadelerindende faydalanılabilir. Bu makalemizde EXCEPT ve INTERSECT nasıl karşılaştırma yapılacağın göstereceğiz.

EXCEPT kullanımı:


SELECT
Etiket='Tablo1 de bulunan fakat Tablo2 de bulunmayan kayıtlar', *
FROM
(
  SELECT * FROM Tablo1
    EXCEPT
  SELECT * FROM Tablo2
) x
UNION ALL
SELECT
Etiket='Tablo2 de bulunan fakat Tablo1 de bulunmayan kayıtlar', *
FROM
(
  SELECT * FROM Tablo2
   EXCEPT
  SELECT * FROM Tablo1
) y

INTERSECT kullanımı:

Her iki tablodada ortak olarak bulunan kayıtları bulalım
SELECT * FROM Tablo1
  INTERSECT
SELECT * FROM Tablo2


-- Sonuç : (10 row(s) affected)

Tablolar arasındaki kayıt farklılıklarını bulmak için NOT EXIST veya LEFT JOIN ifadelerinide kullanabiliriz

NOT EXIST Yöntemi

SELECT * FROM Tablo2 p1 
WHERE NOT EXISTS(
SELECT * FROM Tablo1 p2 
WHERE p2.ID = p1.ID)

LEFT JOIN Yöntemi

SELECT * FROM Tablo2 p1
LEFT OUTER JOIN Tablo1 p2
  ON p2.ID = p1.ID
WHERE p2.ID IS NULL
Exit mobile version