SQL Distinct Kullanımı [ASP]
Bu makalemizde SQL cümlemizde seçtirme işlemi yaparken Distinct komutunun yararlarını göreceğiz.

Distinct ile bir tablomuzdaki bir alana ait kayıtların farklı isimde olanlarını seçeriz.Bunun anlamı ayrı ayrı olanlardır.Örnek olarak bir tablo oluşturalım ve nasıl bir işe yaradığını örnek ile görelim

Tablomuz'da ID(AutoNumber),isimler(text) adlarında 2 adet alanımız olsun, aşağıdaki resimde kayıtları ve alanları görebilirsiniz



Distinct komutu yardımı ile buradaki farklı isimleri seçtirebiliriz.Yani bir isimden aynı var ise o isimden bir adet seçer ve diğerleri seçmez.Yukarıdaki tablonun distinct kullanırsak çıktısı şöyle olacaktır.

Serdar
Alparslan
Uğur
Olgaç

şeklinde çıkarılır.Dikkat ettiğiniz gibi 2 Serdar adlı olan ve 1 Alparslan isimli olan kayıtları seçmemiştir.

Şimdi ise bu seçtirme işleminin nasıl yapıldığını görelim.Tablomuzun ismide "tblisimler" tablosu olsun.Yukarıdaki alan isimlerini kullanarak ekrana bu farklı biçimde nasıl yazdırılacağını görelim

<%
'ObjConn adında veritabanı bağlantınız buraya

Set ObjRS = Server.CreateObject("ADODB.Recordset")
ObjRS.Open "Select Distinct isimler from tblisimler",ObjConn,1,3

Do Until ObjRs.Eof
Response.Write ObjRS("isimler") & "<br>"
ObjRs.MoveNext
Loop
%>


Yukarıda gördüğünüz gibi farklı olan isimleri seçtirdik ve hemen aşağısında döngüye sokarak bu seçilmiş isimleri yazdırdık.Eğer aynı tablo ve kayıtları ekleyip, doğru isimleri üstte belirttiğim gibi ayarlarsanız çıktısı yukarıda belirtmiş olduğum gibi

Serdar
Alparslan
Uğur
Olgaç

şeklinde farklı olan isimler ekrana yazdırılacaktır.

Fakat burada dikkatinizi bir durum çekmiş olmalı.Başka bir alan ismi kullanamıyoruz(seçmedik).Diğer SQL cümlelerinde alan adlarını alan1,alan2 şeklinde virgüller ile yanyana seçtirme yada * ile tamamanı seçtiriyor olabilirsiniz.Distinct kullanıcak iseniz bu olmuyor.
Bu farklı isimleri seçtirme işlemini yapmak isterseniz bir adet daha ayrı recordset açmanız gerekecek .

Ekleyen: WALLACEs | Eklenme Tarihi: 27.01.2016