SQL Eğitimlerimize Distinct deyimi ile devam ediyoruz.

Bazı durumlarda var olan verileri sorgularken tekrar eden verirleri görmek istemeyebiliriz. İşte böyle durumlarda Distinct deyimi kullanılır.

Örneğin bizim kullandığımız XENONBOX veri tabanındaki CUSTOMER tablosunda  birden fazla Eskişehir’de olan kişi olsun. Biz sadece şehirlerden sadece bir kopya görmek istiyor olalım. İşte böyle bir durumda Distinct deyimini kullanmamız gerekir. 

Sonuç olarak göreceğimiz değerler sorguya yazdığımız kolondaki değerlerden sadece bir kopya olacaktır.

Genel Yapı

Select Distinct [Kolonİsmi] From [Tabloİsmi]

Şimdi canlı bir örnek ile bunu görelim.

ilk olarak normal bir Select atalım. Tüm verileri görelim.

SELECT * FROM CUSTOMER

 

Şimdi sadece benzersiz şehirleri listelemek istiyorum.

SELECT DISTINCT CITY FROM CUSTOMER

 

Gördüğümüz gibi sadece CITY kolonu gözüküyor ve tekrar eden 3 tane Eskişehir verisinden sadece birisini aldı. Bir Null değeri vardı kolonda onuda ekleyip sonucu gösterdi.

Birden fazla kolonla Distinct deyimi kullanılabilir.

Genel Yapı

Select Distinct [Kolon1], [Kolon2] From [Tablo]

Burada dikkat edilmesi gereken husus şudur. İstenen kolonlar birleştirilir tek bir veri gibi düşünülüp diğer verilerle benzerliği aranır. Tek tek kolonlara bakılıp benzerlik ya da farklılık sorgulaması yapılmaz.

Tabloya bir veri ekleyelim.

INSERT INTO CUSTOMER VALUES(6,'FERHAT','BİLGİNER','AYDIN','TÜRKİYE','0 555 555 55 55')

SELECT * FROM CUSTOMER

 

Şimdi Distinct işlemiyle şunu yapalım sadece Ad ve Soyad’a göre Distinct işlemi yaptıralım.

SELECT DISTINCT FIRSTNAME, LASTNAME FROM CUSTOMER

 

Görüldüğü gibi kolonları birleştirdi ve benzerliklerine bakıp o durumda farklı olan değerlerden 1 er kopya çekip gösterdi.

Şimdi bu sorguya birde CITY kolonunu ekleyelim. Beklediğimiz sonuç ne olacak NULL değeri olan Murat Bilginer değerininde tabloya girmesi.

SELECT DISTINCT FIRSTNAME, LASTNAME, CITY FROM CUSTOMER

 

 

 

Not: Distinct deyimi tek başına kullanılamaz mutlaka Select deyimiyle beraber kullanılabilir.

Bir sonraki yazımda görüşmek üzere.


muratbilginer