W bazie danych hurtowni zdefiniowano tabelę sprzedaz o polach: id, kontrahent, grupa_cenowa, obrot. Aby wyświetlić kontrahentów uporządkowanych od największego do najmniejszego obrotu, należy zastosować polecenie
A.
SELECT kontrahent FROM sprzedaz ORDER BY kontrahent DESC;
B.
SELECT sprzedaz FROM kontrahent ORDER BY obrot DESC;
C.
SELECT kontrahent FROM sprzedaz ORDER BY obrot DESC;
D.
SELECT kontrahent FROM sprzedaz ORDER BY obrot ASC;
Polecenie SELECT kontrahent FROM sprzedaz ORDER BY obrot DESC; jest właściwe, ponieważ pobiera wartości z pola kontrahent z tabeli sprzedaz i porządkuje wynik według pola obrot. Klauzula ORDER BY wskazuje kolumnę, według której ma zostać wykonane sortowanie, a słowo DESC oznacza kolejność malejącą, czyli od największej wartości do najmniejszej. Ogólny schemat jest następujący: SELECT nazwa_kolumny FROM nazwa_tabeli ORDER BY kolumna_sortowania DESC;. W praktyce takie zapytanie stosuje się np. do tworzenia rankingów klientów według sprzedaży, obrotu lub liczby zamówień. Typowa pułapka polega na użyciu ASC, które sortuje rosnąco, albo na sortowaniu po kolumnie tekstowej kontrahent zamiast po liczbowym obrot.
W tym zadaniu trzeba rozróżnić trzy elementy zapytania: wybieraną kolumnę, tabelę źródłową oraz kolumnę sortującą. SELECT sprzedaz FROM kontrahent ORDER BY obrot DESC; ma zamienione znaczenie nazw - sprzedaz jest nazwą tabeli podaną w treści zadania, a kontrahent jest polem tej tabeli. Takie zapytanie byłoby sensowne tylko wtedy, gdyby istniała tabela kontrahent z kolumnami sprzedaz i obrot. SELECT kontrahent FROM sprzedaz ORDER BY obrot ASC; wybiera właściwe dane z właściwej tabeli, ale ASC sortuje rosnąco, czyli od najmniejszego obrotu do największego. SELECT kontrahent FROM sprzedaz ORDER BY kontrahent DESC; sortuje kontrahentów malejąco według nazwy, np. alfabetycznie od końca, a nie według obrotu. Poprawne polecenie to SELECT kontrahent FROM sprzedaz ORDER BY obrot DESC;. Typowy błąd polega na skupieniu się na kolumnie wyświetlanej po SELECT i pominięciu tego, że porządek wyniku zależy od kolumny wskazanej po ORDER BY.