SQL Server’da İki Tabloyu Karşılaştırmak

SQL Server’da İki Tabloyu Karşılaştırmak

Herkese merhaba,

Bu yazıda sizlere SQL Server’da iki tabloyu karşılaştırmak hakkında bilgi vereceğim.

SQL Server’da bazı zamanlar benzer veriler içeren tabloları karşılaştırma ihtiyacı duyabiliyoruz. Bu gibi durumlarda aşağıdaki yöntemden yararlanarak farklılıkları görebilirsiniz. Örnek kodları inceleyelim.

--Database oluşturma

CREATE DATABASE IkiFarklıTabloyuKarsilastir
GO
USE IkiFarklıTabloyuKarsilastir

--Tablo oluşturma ve veri ekleme

CREATE TABLE BirinciTablo
    (
      Id [NCHAR](10) NOT NULL ,
      Tip [NCHAR](10) NULL ,
      Maliyet [MONEY] NULL,
    )
GO
INSERT  INTO BirinciTablo
VALUES  ( '001', '1', '40' ),
        ( '002', '2', '80' ),
        ( '003', '3', '120' ),
        ( '004', '4', '160' ),
        ( '004', '5', '160' )
GO

CREATE TABLE IkinciTablo
    (
      Id [NCHAR](10) NOT NULL ,
      Tip [NCHAR](10) NULL ,
      Maliyet [MONEY] NULL,
    )
GO

INSERT  INTO IkinciTablo
VALUES  ( '001', '1', '40.05' ),
        ( '002', '2', '80' ),
        ( '003', '6', '120' ),
        ( '004', '4', '160' ),
        ( '004', '5', '160.01' )
GO

--İki tablo arasındaki farkı bulma işlemi

--Birinci tablonun ikinci tablodan farkı

SELECT ID, Tip, Maliyet FROM BirinciTablo
EXCEPT
SELECT ID, Tip, Maliyet  FROM IkinciTablo

--İkinci tablonun birinci tablodan farkı

SELECT ID, Tip, Maliyet FROM IkinciTablo
EXCEPT
SELECT ID, Tip, Maliyet FROM BirinciTablo


--Karşılaştırılan iki tablonun farklı verilerinin tek bir tablo halinde listelenmesi

SELECT ID, Tip, Maliyet FROM
(
    SELECT ID, Tip, Maliyet FROM dbo.BirinciTablo
    UNION ALL
    SELECT ID, Tip, Maliyet FROM dbo.IkinciTablo
) A
GROUP BY ID, Tip, A.Maliyet
HAVING COUNT(*) <> 2

Yukarıda iki tablo oluşturduk. Bu tabloların alan sayıları, tipleri ve isimleri aynı. Bu tabloların içerisine aynı ve farklı veriler ekledik. İlk olarak except ifadesini kullanarak aralarındaki farkı bulduk. İkinci olarak bu farklı verilerin nasıl tek bir tablo halinde gösterileceği sorgusunu yazdık. Umarım anlaşılır olmuştur.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

2.595 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!