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.