Gelecekte seçimimizi metin için alfabetik olarak veya sayısal değerler için artan/azalan şekilde sıralamamız gerekebilir. Bu tür amaçlar için SQL'de özel bir operatör ORDER BY vardır.
SQL operatörü ORDER BY hem küçükten büyüğe, yani artan sırada, hem de ters sırada, büyükten küçüğe doğru sıralayabilir.
Tablomuzun tamamını ürün satış miktarına yani Tutar sütununa göre sıralayalım.
Run SQLSELECT *
FROM Sumproduct
ORDER BY Amount
Tutar alanında sorgunun kayıtları büyükten küçüğe doğru sıraladığını görüyoruz. Operatörlerin diziliş sırasını gözlemlemek gerekir, yani ORDER BY operatörü isteğin en sonuna gitmelidir. Aksi taktirde hata mesajı alınacaktır.
Ayrıca ORDER BY operatörünün bir özelliği de sorguda seçmediğimiz bir alana göre verileri sıralayabiliyor yani veritabanında bulunması yeterli.
Şimdi örneğimizi bir alana daha göre sıralayalım. Ürünlerin satış yerini gösteren City alanı olsun.
Run SQLSELECT *
FROM Sumproduct
ORDER BY Amount, City
Sıralama sırası, istekteki alanların sırasına bağlı olacaktır. Yani bizim durumumuzda veriler önce Tutar sütununa, ardından City'ye göre sıralanacaktır.
ORDER BY operatörü varsayılan olarak artan sırada sıralama yapsa da değerleri azalan sırada da yazabiliriz. Bunu yapmak için her alanın sonuna DESC operatörünü (DESCENDING kelimesinin kısaltmasıdır) koyarız.
Run SQLSELECT *
FROM Sumproduct
ORDER BY Amount DESC, City
Bu örnekte, Tutar alanındaki değerler azalan sırada ve City alanındaki değerler artan sırada sıralanmıştır. DESC operatörü yalnızca bir sütuna uygulanır, dolayısıyla gerekirse sıralamaya katılan her alandan sonra yazılmalıdır.