Red Kit

WFN Üye
Konular
631
Mesajlar
631
Çözüm
0
Ticaret Puanı
0
Üyelik
24 Gün
Konum
Adana
Web Sitesi
Var
Alanı
Makale Yazarı
1/1
Konu sahibi
SQL’de sorgu sonuçlarını belirli bir sütuna göre sıralamak için ORDER BY kullanılır. Sütun adını bu ifadenin ardından yazın; küçükten büyüğe veya A’dan Z’ye sıralama için ASC, büyükten küçüğe veya Z’den A’ya sıralama için DESC belirtin. Sıralama yönü yazılmazsa çoğu SQL sisteminde varsayılan olarak artan sıralama uygulanır.

ORDER BY ile temel sıralama​


Örneğin urunler tablosundaki ürünleri fiyata göre düşükten yükseğe listelemek için şu sorguyu çalıştırabilirsiniz:

SQL:
SELECT id, urun_adi, fiyat
FROM urunler
ORDER BY fiyat ASC;

Burada SELECT görüntülenecek sütunları seçer, FROM urunler verinin hangi tablodan alınacağını belirtir, ORDER BY fiyat ASC ise sonuçları fiyat sütununa göre artan sırada düzenler. Sonuç kümesinde en düşük fiyatlı ürünler önce görünür.

En yüksek fiyatlı ürünleri önce görmek için sıralama yönünü DESC yapın:

SQL:
SELECT id, urun_adi, fiyat
FROM urunler
ORDER BY fiyat DESC;

DESC kullanıldığında büyük sayılar önce gelir. Metin sütunlarında ise sıralama, veritabanının kullandığı karakter sıralama kurallarına bağlı olarak alfabetik düzende yapılır.

Artan ve azalan sıralama arasındaki fark​


Aynı sütun için kullanacağınız ifade, istediğiniz sonucun yönüne göre değişir:
İfadeSonuç
ORDER BY fiyat ASCDüşük fiyatlar önce gelir.
ORDER BY fiyat DESCYüksek fiyatlar önce gelir.
ORDER BY urun_adi ASCÜrün adları artan karakter sırasına göre listelenir.
ORDER BY urun_adi DESCÜrün adları ters yönde listelenir.
ASC ve DESC, veriyi değiştirmez; yalnızca sorgunun döndürdüğü satırların gösterim sırasını belirler. Sıralanmış sonucu kalıcı hâle getirmek için ayrıca bir tabloya yazma veya başka bir işlem gerekir.

Birden fazla sütuna göre sıralama​


Birden fazla sütun kullanıldığında SQL önce ilk sütuna, aynı değere sahip satırlar arasında ikinci sütuna bakar. Örneğin ürünleri önce kategori adına göre, aynı kategorideki ürünleri de fiyata göre sıralamak için:

SQL:
SELECT urun_adi, kategori, fiyat
FROM urunler
ORDER BY kategori ASC, fiyat DESC;

Bu sorguda kategoriler artan sırada listelenir. Aynı kategoriye ait ürünler arasında yüksek fiyatlı olanlar önce görünür. Sıralama önceliği soldan sağa doğru ilerler; bu nedenle ifadelerin sırası sonucu doğrudan etkiler.

Sıralamayı sınırlamak ve sonucu kontrol etmek​


Yalnızca en pahalı birkaç ürünü almak istiyorsanız, ORDER BY ifadesini satır sınırlandırma özelliğiyle birlikte kullanabilirsiniz. PostgreSQL ve MySQL gibi sistemlerde örnek kullanım şöyledir:

SQL:
SELECT urun_adi, fiyat
FROM urunler
ORDER BY fiyat DESC
LIMIT 5;

Önce fiyatlar azalan sırada düzenlenir, ardından ilk beş satır alınır. LIMIT kullanılmadan önce sıralama yapılması önemlidir; aksi hâlde alınan beş satır en pahalı ürünleri temsil etmeyebilir.

SQL Server kullanıyorsanız benzer işlem için TOP kullanılabilir:

SQL:
SELECT TOP 5 urun_adi, fiyat
FROM urunler
ORDER BY fiyat DESC;

Kullandığınız veritabanı sistemi LIMIT, TOP veya başka bir sözdizimi gerektirebilir. Ancak sütuna göre sıralamanın temel yapısı ORDER BY sütun_adi ASC veya ORDER BY sütun_adi DESC biçimindedir.

Sıralama beklediğiniz gibi görünmüyorsa önce ORDER BY içinde doğru sütun adının kullanıldığını, sütunun veri tipinin uygun olduğunu ve birden fazla sıralama ölçütü varsa öncelik sırasını kontrol edin. Sayı gibi görünen değerler metin türünde tutuluyorsa karakter sıralaması uygulanabilir; bu durumda sütunun veri tipini ve dönüşüm gerekip gerekmediğini incelemeniz gerekir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic