MS SQL eğitimlerimize Order By kavramı ile devam ediyoruz.

Order By kavramı listelenmiş verileri istenilen kolonlara göre küçükten büyüğe, büyükten küçüğe ya da alfabetik düzende sıralamak için kullanılır.

Genel Kullanım

Burada ASC(Ascending) yazmamız halinde küçükten büyüğe DESC(Descending) yazmamız halinde büyükten küçüğe sıralayacaktır.

Dipnot: ASC ve DESC bir yerden sonra acaba hangisi küçükten büyüğe hangisi büyükten küçüğeydi diye karıştırılabilen kavramlardır. Bunu akılda tutmak için bulduğum küçük metodu söyleyeyim sizlere. Ascending A ile başlıyor ve D harfinden alfabetik sıralamada geride yada daha küçük olduğunu düşünerek Ascending ifadesinin küçükten büyüğe böylelikle Descending ifadesinin büyükten küçüğe sıralama yaptığını hatırımda daha kolay tutabilmiştim.

Şimdi XENONBOX veri tabanımız üzerinde bir kaç sıralama işlemi yapalım.

  • Önce verilerimizi yine normal olarak sorgulayalım.

1 Maria Anders Berlin Germany 030-0074321
2 Ana Trujillo México D.F. Mexico (5) 555-4729
3 Antonio Moreno México D.F. Mexico (5) 555-3932
4 Thomas Hardy London UK (171) 555-7788
5 Christina Berglund Luleå Sweden 0921-12 34 65
6 Hanna Moos Mannheim Germany 0621-08460
7 Frédérique Citeaux Strasbourg France 88.60.15.31
8 Martín Sommer Madrid Spain (91) 555 22 82
9 Laurence Lebihan Marseille France 91.24.45.40
10 Elizabeth Lincoln Tsawassen Canada (604) 555-4729
11 Victoria Ashworth London UK (171) 555-1212
  • Şimdi Custumer tablosunda isme göre alfabetik sıralama yaptırarak başlayalım.

69 Alejandra Camino Madrid Spain (91) 745 6200
52 Alexander Feuer Leipzig Germany 0342-023176
2 Ana Trujillo México D.F. Mexico (5) 555-4729
81 Anabela Domingues Sao Paulo Brazil (11) 555-2167
31 André Fonseca Campinas Brazil (11) 555-9482
19 Ann Devon London UK (171) 555-0297
41 Annette Roulet Toulouse France 61.77.61.10
3 Antonio Moreno México D.F. Mexico (5) 555-3932
21 Aria Cruz Sao Paulo Brazil (11) 555-9857
75 Art Braunschweiger Lander USA (307) 555-4680
61 Bernardo Batista Rio de Janeiro Brazil (21) 555-4252
  • Herhangi bir sıralama durumu belirtmessek SQL bunu ASC olarak değerlendirip sıralama yapacaktır.

69 Alejandra Camino Madrid Spain (91) 745 6200
52 Alexander Feuer Leipzig Germany 0342-023176
2 Ana Trujillo México D.F. Mexico (5) 555-4729
81 Anabela Domingues Sao Paulo Brazil (11) 555-2167
31 André Fonseca Campinas Brazil (11) 555-9482
19 Ann Devon London UK (171) 555-0297
41 Annette Roulet Toulouse France 61.77.61.10
3 Antonio Moreno México D.F. Mexico (5) 555-3932
21 Aria Cruz Sao Paulo Brazil (11) 555-9857
75 Art Braunschweiger Lander USA (307) 555-4680
61 Bernardo Batista Rio de Janeiro Brazil (21) 555-4252
  • Şimdi birde Büyükten Küçüğe sıralayalım.

91 Zbyszek Piestrzeniewicz Warszawa Poland (26) 642-7012
54 Yvonne Moncada Buenos Aires Argentina (1) 135-5333
42 Yoshi Tannamuri Vancouver Canada (604) 555-3392
36 Yoshi Latimer Elgin USA (503) 555-6874
14 Yang Wang Bern Switzerland 0452-076545
11 Victoria Ashworth London UK (171) 555-1212
4 Thomas Hardy London UK (171) 555-7788
17 Sven Ottlieb Aachen Germany 0241-039123
53 Simon Crowther London UK (171) 555-7733
64 Sergio Gutiérrez Buenos Aires Argentina (1) 123-5555
20 Roland Mendel Graz Austria 7675-3425
  • Order By kavramı Where ifade ile kullanılabilir.

Sadece bir şarta bağlı sorguladığımızda;

1 Maria Anders Berlin Germany 030-0074321
6 Hanna Moos Mannheim Germany 0621-08460
17 Sven Ottlieb Aachen Germany 0241-039123
25 Peter Franken München Germany 089-0877310
39 Philip Cramer Brandenburg Germany 0555-09876
44 Renate Messner Frankfurt a.M. Germany 069-0245984
52 Alexander Feuer Leipzig Germany 0342-023176
56 Henriette Pfalzheim Köln Germany 0221-0644327
63 Horst Kloss Cunewalde Germany 0372-035188
79 Karin Josephs Münster Germany 0251-031259
86 Rita Müller Stuttgart Germany 0711-020361
  • Şimdi bu şartı CITY’e göre sıralatalım 2 şekilde de.

17 Sven Ottlieb Aachen Germany 0241-039123
1 Maria Anders Berlin Germany 030-0074321
39 Philip Cramer Brandenburg Germany 0555-09876
63 Horst Kloss Cunewalde Germany 0372-035188
44 Renate Messner Frankfurt a.M. Germany 069-0245984
56 Henriette Pfalzheim Köln Germany 0221-0644327
52 Alexander Feuer Leipzig Germany 0342-023176
6 Hanna Moos Mannheim Germany 0621-08460
25 Peter Franken München Germany 089-0877310
79 Karin Josephs Münster Germany 0251-031259
86 Rita Müller Stuttgart Germany 0711-020361

86 Rita Müller Stuttgart Germany 0711-020361
79 Karin Josephs Münster Germany 0251-031259
25 Peter Franken München Germany 089-0877310
6 Hanna Moos Mannheim Germany 0621-08460
52 Alexander Feuer Leipzig Germany 0342-023176
56 Henriette Pfalzheim Köln Germany 0221-0644327
44 Renate Messner Frankfurt a.M. Germany 069-0245984
63 Horst Kloss Cunewalde Germany 0372-035188
39 Philip Cramer Brandenburg Germany 0555-09876
1 Maria Anders Berlin Germany 030-0074321
17 Sven Ottlieb Aachen Germany 0241-039123
  • Bunları yaparken tabi ki sadece istediğimiz kolonları da getirebiliriz.

Rita
Karin
Peter
Hanna
Alexander
Henriette
Renate
Horst
Philip
Maria
Sven
  • ORDERS Tablosundan tarihe göre ASC sıralaması yapalım.

542378 2012-07-04 00:00:00.000 1 44000.00 85
542379 2012-07-05 00:00:00.000 2 186340.00 79
542380 2012-07-08 00:00:00.000 3 181300.00 34
542381 2012-07-08 00:00:00.000 4 67080.00 84
542382 2012-07-09 00:00:00.000 5 373000.00 76
542383 2012-07-10 00:00:00.000 6 144480.00 34
542384 2012-07-11 00:00:00.000 7 62520.00 14
542385 2012-07-12 00:00:00.000 8 249050.00 68
542386 2012-07-15 00:00:00.000 9 51780.00 88
542387 2012-07-16 00:00:00.000 10 111990.00 35
542388 2012-07-17 00:00:00.000 11 201860.00 20

827 2014-05-06 00:00:00.000 543204 24430.00 73
828 2014-05-06 00:00:00.000 543205 58600.00 68
829 2014-05-06 00:00:00.000 543206 105700.00 9
830 2014-05-06 00:00:00.000 543207 137460.00 65
823 2014-05-05 00:00:00.000 543200 187350.00 44
824 2014-05-05 00:00:00.000 543201 51000.00 46
825 2014-05-05 00:00:00.000 543202 521800.00 20
826 2014-05-05 00:00:00.000 543203 30000.00 58
820 2014-05-04 00:00:00.000 543197 8685.00 17
821 2014-05-04 00:00:00.000 543198 238480.00 62
822 2014-05-04 00:00:00.000 543199 36000.00 80
  • ORDER BY ile beraber birden fazla kolona göre de sıralama işlemi yaptırılabilir.

Böyle bir sıralama işleminde yapılan işlem sıra iledir. Öncelikle CUSTOMERID sine göre küçükten büyüğe sıralar. Sonra sıraladığı değerler arasında CUSTOMERID si aynı olan değerlerin ORDERDATE kolonuna göre bir kere daha küçükten büyüğe sıralama işlemi yapar.

396 2013-08-25 00:00:00.000 542773 108600.00 1
445 2013-10-03 00:00:00.000 542822 87800.00 1
455 2013-10-13 00:00:00.000 542832 33000.00 1
588 2014-01-15 00:00:00.000 542965 85100.00 1
705 2014-03-16 00:00:00.000 543082 49120.00 1
764 2014-04-09 00:00:00.000 543141 96000.00 1
61 2012-09-18 00:00:00.000 542438 8880.00 2
378 2013-08-08 00:00:00.000 542755 47975.00 2
512 2013-11-28 00:00:00.000 542889 32000.00 2
679 2014-03-04 00:00:00.000 543056 51440.00 2
118 2012-11-27 00:00:00.000 542495 40320.00 3
  • Bir kolona göre ASC sıralaması yapılırken farklı kolonlar için DESC sıralaması yaptırılabilir.

764 2014-04-09 00:00:00.000 543141 96000.00 1
705 2014-03-16 00:00:00.000 543082 49120.00 1
588 2014-01-15 00:00:00.000 542965 85100.00 1
455 2013-10-13 00:00:00.000 542832 33000.00 1
445 2013-10-03 00:00:00.000 542822 87800.00 1
396 2013-08-25 00:00:00.000 542773 108600.00 1
679 2014-03-04 00:00:00.000 543056 51440.00 2
512 2013-11-28 00:00:00.000 542889 32000.00 2
378 2013-08-08 00:00:00.000 542755 47975.00 2
61 2012-09-18 00:00:00.000 542438 8880.00 2
609 2014-01-28 00:00:00.000 542986 66000.00 3

ORDER BY deyimi de böyleydi. 

Bir sonraki yazımda görüşmek üzere.