DISTINCT Komutu

4. Ocak 2014 16:46 by Admin in SQL Server  //  Tags: ,   //   Comments (0)

Sql'de bir tablodan veya ilişkili tablolardan Select komutu ile çektiğimiz veriler içinde birbirinin aynı veriler bulunabilir. Aynı verilerin birden fazla satırda tekrarladığı zamanlarda listeleme esnasında bir kez yazılması (tekrarsız sonuçlar) elde etmek için kullanılır.

 

Örneğin Nebim Winner veritabanında stok kartlarımızda tema kodu boş olan modelleri listelemek istediğimizde her bir modelin renklerinin bedenleri için içinde model kodu ve renk kodunu, bedenleri için tekrarlayacağını düşünürsek ve bedenleri çekmeden listemizi almaya kalkarsak bize birbini tekrarlayan çok fazla sayıda satır verecektir. Fakat distinct komutu ile bunun önüne geçe biliriz.

 

Örnek kod = [sourcecode language="sql"] SELECT DISTINCT tbStok.sModel, tbStok.sAciklama ,tbStok.sModel ,tbStok.sRenk,tbRenk.sRenkAdi,IsNuLL((tbModelRenkTema.sTemaKodu),'') as [Tema Kodu] ,IsNuLL((tbTema.sAciklama),'') as TemaAciklama

FROM tbAsorti, tbStok left outer join tbstokresim on tbstok.smodel=tbstokresim.smodel left outer join tbStokAciklama on tbStok.nStokID=tbStokAciklama.nStokID left outer join tbModelRenkTema on tbModelRenkTema.sModel = tbStok.sModel and tbModelRenkTema.sRenk = tbStok.sRenk left outer join tbTema on tbTema.sTemaKodu = tbModelRenkTema.sTemaKodu ,tbStokTipi,tbFiyatlandirma,tbRenk

WHERE tbStokTipi.nStokTipi=tbStok.nStokTipi and tbStok.sDefaultAsortiTipi = tbAsorti.sAsortiTipi and  tbStok.nFiyatlandirma=tbFiyatlandirma.nFiyatlandirma  and tbRenk.sRenk=tbStok.sRenk and (tbStok.nStokTipi=1 or tbStok.nStokTipi=2 or tbStok.nStokTipi=3) and  tbModelRenkTema.sTemaKodu IS null

ORDER BY tbStok.sModel ,tbStok.sRenk 

 

Şeklinde yazınca oluyor. Bu kod sonucu Model ait Renkleri tekil olduğu için tekrar eden verilerden kurtulmuş oluyoruz.