W przyszłości może zaistnieć potrzeba posortowania naszego zaznaczenia — alfabetycznie w przypadku tekstu lub rosnąco/malejąco — w przypadku wartości liczbowych. Do takich celów SQL ma specjalny operator ORDER BY.
Operator SQL ORDER BY może sortować zarówno od mniejszych do większych, czyli w kolejności rosnącej, jak i w odwrotnej kolejności – od większych do mniejszych.
Posortujmy całą naszą tabelę według wielkości sprzedaży produktów, czyli według kolumny Kwota.
Run SQLSELECT *
FROM Sumproduct
ORDER BY Amount
Widzimy, że zapytanie posortowało rekordy w polu Kwota w kolejności rosnącej. Należy zachować kolejność ułożenia operatorów, czyli operator ORDER BY musi znaleźć się na samym końcu żądania. W przeciwnym razie zostanie wyświetlony komunikat o błędzie.
Cechą operatora ORDER BY jest także to, że potrafi on sortować dane po polu, którego nie wybraliśmy w zapytaniu, czyli wystarczy, że w ogóle znajduje się ono w bazie.
Teraz posortujmy nasz przykład dodatkowo według jeszcze jednego pola. Niech będzie to pole City, które wyświetla miejsce sprzedaży produktów.
Run SQLSELECT *
FROM Sumproduct
ORDER BY Amount, City
Kolejność sortowania będzie zależała od kolejności pól w zapytaniu. Oznacza to, że w naszym przypadku dane zostaną najpierw posortowane według kolumny Kwota, a następnie według City.
Chociaż domyślnie operator ORDER BY sortuje w kolejności rosnącej, możemy również zapisywać wartości w kolejności malejącej. Aby to zrobić, na końcu każdego pola umieszczamy operator DESC (będący skrótem słowa DESCENDING).
Run SQLSELECT *
FROM Sumproduct
ORDER BY Amount DESC, City
W tym przykładzie wartości w polu Kwota zostały posortowane w kolejności malejącej, a w polu City – w kolejności rosnącej. Operator DESC dotyczy tylko jednej kolumny, dlatego w razie potrzeby należy go zapisać po każdym polu biorącym udział w sortowaniu.