TOP

SQL Dersi 3. Verileri sıralama (ORDER BY)

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.


1. Seçilen verileri sıralama

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.

2. Birkaç alana göre sıralama

Ş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.

3. Sıralama yönü

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.