- Ilekroć chcemy posortować rekordy na podstawie kolumn znajdujących się w tabelach bazy SQL, wówczas rozważamy zastosowanie w SQL klauzuli ORDER BY.
- Klauzula ORDER BY w SQL pomaga nam sortować rekordy na podstawie konkretnej kolumny tabeli. Oznacza to, że początkowo wszystkie wartości zapisane w kolumnie, w której stosujemy klauzulę ORDER BY, zostaną posortowane. Następnie zostaną wyświetlone odpowiednie wartości kolumn w tej samej kolejności, w jakiej uzyskaliśmy wartości we wcześniejszym kroku.
- Używając klauzuli ORDER BY, możemy posortować rekordy w kolejności rosnącej lub malejącej, zgodnie z naszymi wymaganiami. Jeśli słowo kluczowe ASC zostanie użyte z klauzulą ORDER by, rekordy zostaną posortowane w kolejności rosnącej. Słowo kluczowe DESC sortuje rekordy w kolejności malejącej . Jeżeli po kolumnie, według której mamy posortować rekordy, nie zostanie podane żadne słowo kluczowe, wówczas domyślnie sortowanie zostanie wykonane w kolejności rosnącej.
Zanim napiszemy zapytania sortujące rekordy, przyjrzyjmy się składni.
Składnia sortowania rekordów w kolejności malejącej:
SELECT ColumnName1,…,ColumnNameN FROM TableName ORDER BY ColumnNameDESC;
Zbadajmy więcej na ten temat za pomocą przykładów. Do zapisywania zapytań w przykładach będziemy używać bazy danych MySQL.
Rozważmy, że mamy tabelę klientów zawierającą następujące rekordy:
dialekt hibernacji
ID | NAZWA | WIEK | ADRES | WYNAGRODZENIE |
---|---|---|---|---|
1 | Himani Gupta | dwadzieścia jeden | Modi Nagara | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
3 | Ajeet Bhargav | Cztery pięć | Meerut | 65000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
5 | Balwanta Singha | Cztery pięć | Waranasi | 36000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
7 | Rohita Srivastavy | 19 | Ahmadabad | 38000 |
8 | Neeru Sharma | 29 | Pune | 40000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
10 | Sahil Szejk | 35 | Aurangabad | 68800 |
Przykład 1:
Napisz zapytanie sortujące rekordy w kolejności malejącej według nazw klientów przechowywanych w tabeli klientów.
Zapytanie:
mysql> SELECT *FROM customers ORDER BY Name DESC;
Tutaj, w zapytaniu SELECT, w kolumnie „Nazwa” stosowana jest klauzula ORDER BY w celu sortowania rekordów. Słowo kluczowe DESC sortuje rekordy w kolejności malejącej.
Otrzymasz następujące dane wyjściowe:
ID | NAZWA | WIEK | ADRES | WYNAGRODZENIE |
---|---|---|---|---|
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
10 | Sahil Szejk | 35 | Aurangabad | 68800 |
7 | Rohit Shrivastav | 19 | Ahmadabad | 38000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
8 | Neeru Sharma | 29 | Pune | 40000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
1 | Himani Gupta | dwadzieścia jeden | Modi Nagara | 22000 |
5 | Balwanta Singha | Cztery pięć | Waranasi | 36000 |
3 | Ajeet Bhargav | Cztery pięć | Meerut | 65000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
Wszystkie rekordy znajdujące się w tabeli klientów wyświetlane są w kolejności malejącej według nazwy klienta.
Przykład 2:
Napisz zapytanie sortujące rekordy w kolejności malejącej według adresów zapisanych w tabeli klientów.
Zapytanie:
mysql> SELECT *FROM customers ORDER BY Address DESC;
Tutaj, w zapytaniu SELECT, do kolumny „Adres” stosowana jest klauzula ORDER BY w celu sortowania rekordów. Słowo kluczowe DESC sortuje rekordy w kolejności malejącej.
Otrzymasz następujące dane wyjściowe:
ID | NAZWA | WIEK | ADRES | WYNAGRODZENIE |
---|---|---|---|---|
5 | Balwanta Singha | Cztery pięć | Waranasi | 36000 |
8 | Neeru Sharma | 29 | Pune | 40000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
1 | Himani Gupta | dwadzieścia jeden | Modi Nagara | 22000 |
3 | Ajeet Bhargav | Cztery pięć | Meerut | 65000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
10 | Sahil Szejk | 35 | Aurangabad | 68800 |
7 | Rohita Srivastavy | 19 | Ahmadabad | 38000 |
Wszystkie rekordy znajdujące się w tabeli klientów wyświetlane są w kolejności malejącej według adresu klienta.
Przykład 3:
Napisz zapytanie sortujące rekordy w kolejności malejącej według wynagrodzenia klienta zapisanego w tabeli klienci.
Zapytanie:
mysql> SELECT *FROM customers ORDER BY Salary DESC;
Tutaj, w zapytaniu SELECT, w kolumnie „Wynagrodzenie” stosowana jest klauzula ORDER BY w celu sortowania rekordów. Słowo kluczowe DESC sortuje rekordy w kolejności malejącej.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Wiek | Adres | Wynagrodzenie |
---|---|---|---|---|
10 | Sahil Szejk | 35 | Aurangabad | 68800 |
3 | Ajeet Bhargav | Cztery pięć | Meerut | 65000 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
8 | Neeru Sharma | 29 | Pune | 40000 |
7 | Rohita Srivastavy | 19 | Ahmadabad | 38000 |
5 | Balwanta Singha | Cztery pięć | Waranasi | 36000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
1 | Himani Gupta | dwadzieścia jeden | Modi Nagara | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
Wszystkie rekordy znajdujące się w tabeli klientów wyświetlane są w kolejności malejącej według wynagrodzenia klienta.
Przykład 4:
projekt singletona
Napisz zapytanie sortujące rekordy w kolejności malejącej według wieku klienta zapisanego w tabeli Klienci.
Zapytanie:
mysql> SELECT *FROM customers ORDER BY Age DESC;
Tutaj, w zapytaniu SELECT, w kolumnie „Wiek” stosowana jest klauzula ORDER BY w celu sortowania rekordów. Słowo kluczowe DESC sortuje rekordy w kolejności malejącej.
Otrzymasz następujące dane wyjściowe:
ID | Nazwa | Wiek | Adres | Wynagrodzenie |
---|---|---|---|---|
3 | Ajeet Bhargav | Cztery pięć | Meerut | 65000 |
5 | Balwanta Singha | Cztery pięć | Waranasi | 36000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
10 | Sahil Szejk | 35 | Aurangabad | 68800 |
9 | Akash Yadav | 32 | Bombaj | 43500 |
8 | Neeru Sharma | 29 | Pune | 40000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
1 | Himani Gupta | dwadzieścia jeden | Modi Nagara | 22000 |
7 | Rohita Srivastavy | 19 | Ahmadabad | 38000 |
Wszystkie rekordy znajdujące się w tabeli klientów wyświetlane są w kolejności malejącej według wieku klienta.
Rozważmy, że mamy inną tabelę o nazwie agenci z następującymi rekordami:
POMOC | Nazwa | Miejsce pracy | Procent_zysku | Numer kontaktowy | Wynagrodzenie |
---|---|---|---|---|---|
1 | Gurpreeta Singha | Bangalore | 1 | 9989675432 | 43000 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60000 |
4 | Shivani Więcej | Pune | 3 | 8894236789 | 35500 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
7 | Powiedziała Shweta | Czandigarh | 6 | 8898786453 | 31670 |
8 | Sonakshi Tiwari | Udajpur | 2 | 9809453421 | 25050 |
9 | Anushka Tripathi | Na palcach | 9 | 8909124326 | 38000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
Przykład 1:
Napisz zapytanie sortujące rekordy w kolejności malejącej według nazw agentów przechowywanych w tabeli agentów.
Zapytanie:
mysql> SELECT *FROM agents ORDER BY Name DESC;
Tutaj, w zapytaniu SELECT, w kolumnie „Nazwa” stosowana jest klauzula ORDER BY w celu sortowania rekordów. Słowo kluczowe DESC sortuje rekordy w kolejności malejącej.
gimp usuwający tło
Otrzymasz następujące dane wyjściowe:
POMOC | Nazwa | Miejsce pracy | Procent_zysku | Numer kontaktowy | Wynagrodzenie |
---|---|---|---|---|---|
8 | Sonakshi Tiwari | Udajpur | 2 | 9809453421 | 25050 |
7 | Powiedziała Shweta | Czandigarh | 6 | 8898786453 | 31670 |
4 | Shivani Więcej | Pune | 3 | 8894236789 | 35500 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
1 | Gurpreeta Singha | Bangalore | 1 | 9989675432 | 43000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
9 | Anushka Tripathi | Na palcach | 9 | 8909124326 | 38000 |
Wszystkie rekordy znajdujące się w tabeli agentów są wyświetlane w kolejności malejącej według nazwy agenta.
Przykład 2:
Napisz zapytanie sortujące rekordy w kolejności malejącej według wynagrodzenia agenta zapisanego w tabeli agentów.
Zapytanie:
mysql> SELECT *FROM agents ORDER BY Salary DESC;
Tutaj, w zapytaniu SELECT, w kolumnie „Wynagrodzenie” stosowana jest klauzula ORDER BY w celu sortowania rekordów. Słowo kluczowe DESC sortuje rekordy w kolejności malejącej.
Otrzymasz następujące dane wyjściowe:
POMOC | Nazwa | Miejsce pracy | Procent_zysku | Numer kontaktowy | Wynagrodzenie |
---|---|---|---|---|---|
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
1 | Gurpreeta Singha | Bangalore | 1 | 9989675432 | 43000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
9 | Anushka Tripathi | Na palcach | 9 | 8909124326 | 38000 |
4 | Shivani Więcej | Pune | 3 | 8894236789 | 35500 |
7 | Powiedziała Shweta | Czandigarh | 6 | 8898786453 | 31670 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
8 | Sonakshi Tiwari | Udajpur | 2 | 9809453421 | 25050 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
Wszystkie rekordy znajdujące się w tabeli agentów wyświetlane są w kolejności malejącej według wynagrodzenia agenta.
Przykład 3:
Napisz zapytanie sortujące rekordy w kolejności malejącej według obszaru roboczego agenta zapisanego w tabeli agentów.
Zapytanie:
mysql> SELECT *FROM agents ORDER BY WorkArea DESC;
Tutaj, w zapytaniu SELECT, w kolumnie „WorkArea” stosowana jest klauzula ORDER BY w celu sortowania rekordów. Słowo kluczowe DESC sortuje rekordy w kolejności malejącej.
Otrzymasz następujące dane wyjściowe:
POMOC | Nazwa | Miejsce pracy | Procent_zysku | Numer kontaktowy | Wynagrodzenie |
---|---|---|---|---|---|
9 | Anushka Tripathi | Na palcach | 9 | 8909124326 | 38000 |
8 | Sonakshi Tiwari | Udajpur | 2 | 9809453421 | 25050 |
4 | Shivani Więcej | Pune | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
7 | Powiedziała Shweta | Czandigarh | 6 | 8898786453 | 31670 |
1 | Gurpreeta Singha | Bangalore | 1 | 9989675432 | 43000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
Wszystkie rekordy znajdujące się w tabeli agentów są wyświetlane w kolejności malejącej według obszaru roboczego agenta.
Przykład 4:
Napisz zapytanie sortujące rekordy w kolejności malejącej według procentu zysku agenta zapisanego w tabeli agentów.
przykłady kodu w języku c#
Zapytanie:
mysql> SELECT *FROM agents ORDER BY Profit_Percent DESC;
Tutaj, w zapytaniu SELECT, w kolumnie „Profit_Percent” stosowana jest klauzula ORDER BY w celu sortowania rekordów. Słowo kluczowe DESC sortuje rekordy w kolejności malejącej.
Otrzymasz następujące dane wyjściowe:
POMOC | Nazwa | Miejsce pracy | Procent_zysku | Numer kontaktowy | Wynagrodzenie |
---|---|---|---|---|---|
9 | Anushka Tripathi | Na palcach | 9 | 8909124326 | 38000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
7 | Powiedziała Shweta | Czandigarh | 6 | 8898786453 | 31670 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
4 | Shivani Więcej | Pune | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Bombaj | 2 | 9056123432 | 60000 |
8 | Sonakshi Tiwari | Udajpur | 2 | 9809453421 | 25050 |
1 | Gurpreeta Singha | Bangalore | 1 | 9989675432 | 43000 |
Wszystkie rekordy znajdujące się w tabeli agentów są wyświetlane w kolejności malejącej według procentu zysku agenta.