Sql Kodları ANA SAYFA    İLETİŞİM    HAKKIMIZDA 

Google Book üzerinden kitabımızın online versiyonunu satın alabilirsiniz

SQL DISTINCT Kullanımı

DISTINCT ifadesi tablodaki belirtilen alanda bulunan kayıtlardan birer örnek alır. Yani tekrar eden kayıtlardan bir tane alır ve bunun yanına da tekrar etmeyen kayıtları koyarak bir veri kümesi oluşturur. Ne işimize yarar veya nerede kullanabiliriz sorusu akla gelebilir.

Mesela bir üyelerinizin depolandığı bir tablo olduğunu düşünün. Bu tablodan mesela İstanbul'da kaç tane üyeniz olduğunu bulmak istediğinizi düşünün. Yaptığınız programa bir açılır liste kutusu koyup illerin isimlerini tek tek yazabilirsiniz. Ancak bu durum hem bir zaman kaybı olur hemde sistemde kayıtlı olmayan ileri de listeleyeceği için, açılır liste kutusu açıldığında uzun bir liste olacaktır. Bunun yerine Distinct komutu kullanarak tablodaki Şehir alanında yazan kayıtlar tek düşürülür ve bir açılır liste kutusuna aktarılabilir. Böylece ilgili şehir seçilerek o şehirde kaç tane üyenizin olduğunu görebilirsiniz. Listede görünmeyen şehirden üyeniz olmadığı anlamını rahatlıkla çıkarabilirsiniz.

Distinct Kullanım Biçimi

SELECT DISTINCT alan_adi1,alan_adi2
FROM tablo_adi

Distinct kelimesinden sonra yazılacak olan alanlara otomatik olarak uygulanır. Yani birden fazla alan üzerinde Distinct yapılacaksa alanların başına tek tek yazılmaz. Ayrıca Distinct komutu tek başına kullanılamaz. Mutlaka SELECT ifadesi ile kullanılmalıdır.

Burada dikkat edilmesi gereken nokta çoklu distinct kullanımında belirtilen alanlardaki verileri bir bütün olarak ele alır ve diğer kayırlarda benzersiz alanları bulmaya çalışır. (örnek2 ve örnek3'e bakabilirisiniz.)


Örnek Tablo Uygulaması:
Örnek olarak aşağıdaki gibi Personel isimli tablomuz olsun.

id Adi_soyadi Sehir Bolum Meslek_Kodu
1 Salih ESKİOĞLU İstanbul Bilgi İşlem Sorumlusu 1234567
2 Ayhan ÇETİNKAYA Kocaeli İdari İşler Yöneticisi 2345678
3 Serkan ÖZGÜREL Erzincan Muhasebe 3456789
4 İlhan ÖZLÜ İstanbul Bİlgi İşlem Sorumlusu 2345678


Örnek1:

SELECT DISTINCT Sehir FROM Personel 

Bu kod ile tablodaki Sehir alanında bulunan kayıtları birer defa alır.

Çıktısı:

Sehir
İstanbul
Kocaeli
Erzincan



Örnek2:

SELECT DISTNICT Sehir, Bolum FROM Personel

Bu örnekte Personel tabosundan adı soyadı ve bölüm bilgisinin tutulduğu alanlar seçilmektedir. Ancak burada dikkat edilmesi gerekn nokta iki alanın sanki tek bir alanmş gibi değelendirilmesidir.

Çıktısı:

Sehir Bolum
İstanbul Bilgi İşlem Sorumlusu
Kocaeli İdari İşler Yöneticisi
Erzincan Muhasebe

Burada dikkat edeceğiniz üzere tablomuzdaki son satırı almadı. Çünkü Sehir ve Bolum alanlarını tek bir alanmış gibi düşündüğümüz zaman "İstanbul Bilgi İşlem Sorumlusu" ifadesi ortaya çıkar. Son satırdaki kayıtta aynı ifadeye denk gelmektedir. Bu sebeple dikkate alınmadı.

Örnek3:

SELECT DISTNICT Sehir, Bolum, Meslek_Kodu FROM Personel

Bu örnekte Personel tabosundan adı soyadı ve bölüm bilgisinin tutulduğu alanlar seçilmektedir. Ancak burada dikkat edilmesi gerekn nokta iki alanın sanki tek bir alanmş gibi değelendirilmesidir.

Çıktısı:

Sehir Bolum Meslek_Kodu
İstanbul Bilgi İşlem Sorumlusu 1234567
Kocaeli İdari İşler Yöneticisi 2345678
Erzincan Muhasebe 3456789
İstanbul Bİlgi İşlem Sorumlusu 2345678

Bu örnekte ise bütün kayıtlar gelmiş oldu.  Çünkü Sehir, Bolum ve Meslek_kodu alanlarını tek bir alanmış gibi düşündüğümüz zaman; ilk satırı örnek verecek olursak "İstanbul Bilgi İşlem Sorumlusu 1234567" ifadesi ortaya çıkar. Sehir alanında iki tane İstanbul olmasına rağmen ikiside listelenmiştir. Çünkü iki kaydın Meslek_Kodu alanında yazan değer farklıdır.

Aynı tabloyu aşağıdaki kod ile çalıştırdığımız zaman:
Select Distinct Bolum, Meslek_kodu FROM Personel

Çıktısı:

Bolum Meslek_Kodu
Bilgi İşlem Sorumlusu 1234567
İdari İşler Yöneticisi 2345678
Muhasebe 3456789
Bilgi İşlem Sorumlusu 2345678

Dikkat edileceği üzere Bilgi İşlem Sorumlusu alanı iki defa gelmiş oldu. Aynı mantıktan yola çıakrak alanların birleştirilmiş olduğunu düşünürsek, Bilgi İşlem Sorumlusu kayıtlarında Meslek_Kodu alanında 1234567 ve 2345678 verileri vardır. Dolayısı ile bu iki satır benzersiz değildir.

  Reklam vermek için mail ile iletişime geçebilirsiniz


www.sqlkodlari.com - 2014 - 2024
Telif hakları uyarısı: Sitedeki bilgiler izinsiz KOPYALANABİLİR. Çünkü bu bilgiler bilgisayar standartlarındandır ve bizim bulup ürettiğimiz şeyler değildir. Başka sitelerde de burada anlatılan açıklamalara rastlayabilirsiniz. Ancak ricamız buradan faydalı bir şeyler öğreniyorsanız, o zaman siteyi tavsiye edin ki başkaları da öğrensin.