7.5. Sortowanie wierszy

po wytworzeniu przez zapytanie tabeli wyjściowej (po przetworzeniu listy select) można ją opcjonalnie posortować. Jeśli sortowanie nie zostanie wybrane, wiersze zostaną zwrócone w nieokreślonej kolejności. Rzeczywista kolejność w takim przypadku będzie zależeć od typów planów skanowania i łączenia oraz kolejności na dysku, ale nie można na niej polegać. Konkretna kolejność danych wyjściowych może być zagwarantowana tylko wtedy, gdy krok sortowania jest wyraźnie wybrany.

klauzula ORDER BY określa kolejność sortowania:

SELECT select_list FROM table_expression ORDER BY column1 ...]

kolumna 1 itd., patrz Wybierz kolumny listy. Może to być nazwa wyjściowa kolumny (patrz sekcja 7.3.2) lub numer kolumny. Kilka przykładów:

SELECT a, b FROM table1 ORDER BY a;SELECT a + b AS sum, c FROM table1 ORDER BY sum;SELECT a, sum(b) FROM table1 GROUP BY a ORDER BY 1;

jako rozszerzenie standardu SQL, PostgreSQL umożliwia również porządkowanie według dowolnych wyrażeń:

SELECT a, b FROM table1 ORDER BY a + b;

dozwolone są również odwołania do nazw kolumn klauzuli FROM, które nie znajdują się na liście select:

SELECT a FROM table1 ORDER BY b;

ale te rozszerzenia nie działają w zapytaniach obejmujących UNION, INTERSECT lub EXCEPT i nie są przenośne do innych baz danych SQL.

po każdej specyfikacji kolumny może znajdować się opcjonalne ASC lub DESC, aby ustawić kierunek sortowania na rosnący lub malejący. Kolejność ASC jest domyślna. Kolejność rosnąca stawia najpierw mniejsze wartości, gdzie „mniejszy” jest zdefiniowany w kategoriach operatora <. Podobnie kolejność malejąca jest określana za pomocą operatora >.

jeśli podano więcej niż jedną kolumnę sortowania, późniejsze pozycje są używane do sortowania wierszy, które są równe w kolejności narzuconej przez wcześniejsze kolumny sortowania.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Previous post ile warta jest używana wanna z hydromasażem?
Next post co warto wiedzieć o skandalu seksualnym Josha Duggara