Bir önceki ders select ve from komutlarını görmüş ve 3 tane örnek çözümlemiştik :) Şimdi kaldığımız yerden devam ediyoruz ilk komutumuzla sql dersimize başlayalım.
DISTINCT (TEKRARSIZ):SQL’de tablo içinde birbirinin aynı datalar bulunabilir.Aynı satırların listeleme esnasında bir kez yazılmasını sağlamak için kullanılan komuttur hemen örnek ile açıklayalım;
ÖRNEK: 1)Par _sat dosyasından sat_no’ları tekrarsız olarak listelenecektir.
SELECT DISTINCT sat_no
FROM par_sat;
TABLO BİLGİLERİNİN SIRALANMIŞ OLARAK LİSTELENMESİ:
ORDER BY(SIRALA)Tablodaki sütunlardan ,belirli bir sütuna göre listelemek için SEÇ komutuna ,SIRALA eklenir.
ÖRNEK: 1)Personel dosyasından,sicil,ad,soyad,brüt sütunlarını seç ve brüt(maaşa)göre büyükten küçüğe sırala.
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel GELİŞ personel
ORDER BY brüt ASC; SIRALA brüt B-K;
DESC Büyükten küçüğe sırala ASC Küçükten büyüğe sırala
BİRDEN ÇOK ALANA GÖRE SIRALAMA:Bir tablo içinde ,birden fazla sütundan aynı anda sıralamak için kullanılır.
ÖRNEK 1)Personel dosyasından seçilen sütunlarını aynı anda hem ad,hem de otomatik olarak sıralar.
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel GELİŞ personel
ORDER BY ad,brüt; SIRALA ad,brüt;
ÖRNEK 2)Personel tablosundan seçili sütunları öncelik adda olmak üzere (B-K) adı bozmadan soyadı (K-B) sıralı listeler.
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel GELİŞ personel
ORDER BY ad ASC,soyad DESC, SIRALA ad B-K,soyad K-B,
brüt ASC; brüt B-K;
veya;
SELECT sicil,ad,soyad,brüt SEÇ sicil,ad,soyad,brüt
FROM personel GELİŞ personel
ORDER BY ad,soyad DESC,brüt; SIRALA ad,soyad K-B,brüt;
DESC’li durumda yanına yazıp belirtilir,yazılmazsa ASC direct kabul edilir.
Distinc ile listelenen veriler kendi içinde order by ID vs yemiyor mu ben hata alıyorum da.
“SELECT DISTINCT SEPETID, USERID, DURUM, TARIH, ID FROM [SEPET] ORDER BY ID” ve türevlerini kullandım ama olmadı
[quote name=”Fatih Aytekin”]Bir Yanlışlık var ASC Küçükten Büyüğe DESC büyükten küçüğe olmalıydı.[/quote]
uyarınız için teşekkürler… :)
Bir Yanlışlık var ASC Küçükten Büyüğe DESC büyükten küçüğe olmalıydı.