SQL sorgularında verileri belirli bir düzende sıralamak, analiz süreçlerini kolaylaştıran ve okunabilirliği artıran kritik bir işlemdir. SQL ORDER BY ifadesi, bu ihtiyacı karşılamak üzere tasarlanmış temel SQL komutlarından biridir. Sorgu sonuçlarını bir veya daha fazla sütuna göre artan (ASC) veya azalan (DESC) şekilde sıralamanıza olanak tanır.
ORDER BY Syntax Yapısı
1 2 3 | SELECT sutun1, sutun2, ... FROM tablo_adi ORDER BY sutun1 [ASC|DESC], sutun2 [ASC|DESC], ...; |
sütun1, sütun2, ...
: Sıralama yapılacak sütunlar.ASC
: Artan sıralama (varsayılan).DESC
: Azalan sıralama.
ORDER BY Örnekleri
Aşağıdaki örnekte, calisanlar tablosundaki kişilerin isimlerini artan sırada sıralayalım.
Bu örnekte, calisanlar tablosundaki kişilerin önce departmana göre artan, sonra maaşa göre azalan şekilde sıralayalım.
1 2 3 | SELECT departman, maas, isim, soyisim FROM calisanlar ORDER BY departman ASC, maas DESC; |
departman | maas | isim | soyisim |
---|---|---|---|
Bilgi İşlem | 60000 | Cihangir | Yılmaz |
İnsan Kaynakları | 50000 | Ali | Demir |
Muhasebe | 45000 | Beyazıt | Ayyıldız |
Bir siparisler
tablosunda sipariş tarihine göre sıralama yapalım. Örneğin, en yeni siparişler en üstte olacak şekilde sıralayalım.
1 2 3 | SELECT siparis_id, musteri_adi, siparis_tarihi FROM siparisler ORDER BY siparis_tarihi DESC; |
siparis_id | musteri_adi | siparis_tarihi |
---|---|---|
105 | Ahmet Yılmaz | 2025-10-15 |
103 | Mehmet Demir | 2024-09-20 |
101 | Ayşe Kaya | 2023-08-10 |
Bir urunler
tablosunda ürün açıklamalarının uzunluğuna göre sıralama yapalım. Örneğin, en kısa açıklamalar en üstte olacak şekilde sıralayalım.
1 2 3 | SELECT urun_adi, aciklama FROM urunler ORDER BY LENGTH(aciklama) ASC; |
urun_adi | aciklama |
---|---|
Kalem | Kırmızı renkli kalem |
Defter | Çizgili defter |
Masa Lambası | LED masa lambası, ayarlanabilir parlaklık |
ogrenciler
tablosunda öğrencilerin notlarına göre özel bir sıralama yapmak isteyebilirsiniz. Örneğin, notu 50’den yüksek olanlar en üstte, diğerleri altta olacak şekilde sıralayalım.
1 2 3 4 5 6 | SELECT ogrenci_adi, notu FROM ogrenciler ORDER BY CASE WHEN notu >= 50 THEN 1 ELSE 2 END, notu DESC; |
ogrenci_adi | notu |
---|---|
Yunus | 95 |
Metehan | 85 |
Alaaddin | 45 |
Oktay | 30 |
Elimizde bulunan tablodaki verileri illa ki belli bir koşula göre sıralamaya sokacağız diye bir kural, düzen bulunmamakta. İstersek bu verileri rastgele sıralayabiliriz. Bunun için random komutunu kullanmamız gerekir. urunler
tablosundaki ürünleri rastgele sıralayalım.
1 2 3 | SELECT urun_adi, fiyat FROM urunler ORDER BY RAND(); |
urun_adi | fiyat |
---|---|
Masa Lambası | 250 |
Kalem | 10 |
Defter | 20 |