- Kad god želimo sortirati zapise na temelju stupaca pohranjenih u tablicama SQL baze podataka, tada razmatramo korištenje klauzule ORDER BY u SQL-u.
- Klauzula ORDER BY u SQL-u pomaže nam sortirati zapise na temelju određenog stupca tablice. To znači da će u početku sve vrijednosti pohranjene u stupcu na koji primjenjujemo klauzulu ORDER BY biti sortirane. Tada će se odgovarajuće vrijednosti stupaca prikazati u istom nizu u kojem su prikazane vrijednosti koje smo dobili u prethodnom koraku.
- Koristeći klauzulu ORDER BY, možemo sortirati zapise uzlaznim ili silaznim redoslijedom prema našim zahtjevima. Zapisi će biti poredani uzlaznim redoslijedom kad god se ključna riječ ASC koristi s klauzulom ORDER by. Ključna riječ DESC sortirat će zapise silaznim redoslijedom . Ako iza stupca na temelju kojeg moramo sortirati zapise nije navedena ključna riječ, tada će se u tom slučaju sortiranje vršiti prema zadanim postavkama uzlaznim redoslijedom.
Prije nego što napišemo upite za sortiranje zapisa, shvatimo sintaksu.
Sintaksa za sortiranje zapisa silaznim redoslijedom:
SELECT ColumnName1,…,ColumnNameN FROM TableName ORDER BY ColumnNameDESC;
Istražimo više o ovoj temi uz pomoć primjera. Koristit ćemo MySQL bazu podataka za pisanje upita u primjerima.
Zamislite da imamo tablicu kupaca sa sljedećim zapisima:
iskaznica | IME | DOB | ADRESA | PLAĆA |
---|---|---|---|---|
1 | Himani Gupta | dvadeset i jedan | Modi Nagar | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
3 | Ajeet Bhargav | Četiri pet | Meerut | 65000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
5 | Balwant Singh | Četiri pet | Varanasi | 36000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
8 | Neeru Sharma | 29 | Pune | 40000 |
9 | Akash Yadav | 32 | Mumbai | 43500 |
10 | Sahil Šejh | 35 | Aurangabad | 68800 |
Primjer 1:
Napišite upit za sortiranje zapisa silaznim redoslijedom imena kupaca pohranjenih u tablici kupaca.
Upit:
mysql> SELECT *FROM customers ORDER BY Name DESC;
Ovdje u SELECT upitu, klauzula ORDER BY se primjenjuje na stupac 'Ime' za sortiranje zapisa. Ključna riječ DESC sortirat će zapise silaznim redoslijedom.
Dobit ćete sljedeći izlaz:
iskaznica | IME | DOB | ADRESA | PLAĆA |
---|---|---|---|---|
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
10 | Sahil Šejh | 35 | Aurangabad | 68800 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
8 | Neeru Sharma | 29 | Pune | 40000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
1 | Himani Gupta | dvadeset i jedan | Modi Nagar | 22000 |
5 | Balwant Singh | Četiri pet | Varanasi | 36000 |
3 | Ajeet Bhargav | Četiri pet | Meerut | 65000 |
9 | Akash Yadav | 32 | Mumbai | 43500 |
Svi zapisi prisutni u tablici kupaca prikazani su silaznim redoslijedom imena kupaca.
Primjer 2:
Napišite upit za sortiranje zapisa silaznim redoslijedom adresa pohranjenih u tablici kupaca.
Upit:
mysql> SELECT *FROM customers ORDER BY Address DESC;
Ovdje u SELECT upitu, klauzula ORDER BY primjenjuje se na stupac 'Adresa' za sortiranje zapisa. Ključna riječ DESC sortirat će zapise silaznim redoslijedom.
Dobit ćete sljedeći izlaz:
iskaznica | IME | DOB | ADRESA | PLAĆA |
---|---|---|---|---|
5 | Balwant Singh | Četiri pet | Varanasi | 36000 |
8 | Neeru Sharma | 29 | Pune | 40000 |
9 | Akash Yadav | 32 | Mumbai | 43500 |
1 | Himani Gupta | dvadeset i jedan | Modi Nagar | 22000 |
3 | Ajeet Bhargav | Četiri pet | Meerut | 65000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
10 | Sahil Šejh | 35 | Aurangabad | 68800 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
Svi zapisi prisutni u tablici kupaca prikazuju se silaznim redoslijedom adrese kupca.
Primjer 3:
f-string python
Napišite upit za sortiranje zapisa prema silaznom redoslijedu plaće kupaca pohranjenih u tablici kupaca.
Upit:
mysql> SELECT *FROM customers ORDER BY Salary DESC;
Ovdje u SELECT upitu, klauzula ORDER BY primjenjuje se na stupac 'Plaća' za sortiranje zapisa. Ključna riječ DESC sortirat će zapise silaznim redoslijedom.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Dob | Adresa | Plaća |
---|---|---|---|---|
10 | Sahil Šejh | 35 | Aurangabad | 68800 |
3 | Ajeet Bhargav | Četiri pet | Meerut | 65000 |
9 | Akash Yadav | 32 | Mumbai | 43500 |
8 | Neeru Sharma | 29 | Pune | 40000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
5 | Balwant Singh | Četiri pet | Varanasi | 36000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
1 | Himani Gupta | dvadeset i jedan | Modi Nagar | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
Svi zapisi prisutni u tablici kupaca prikazani su silaznim redoslijedom plaće korisnika.
Primjer 4:
Napišite upit za sortiranje zapisa po silaznom redoslijedu starosti kupca pohranjenih u tablici kupaca.
Upit:
mysql> SELECT *FROM customers ORDER BY Age DESC;
Ovdje u SELECT upitu, klauzula ORDER BY se primjenjuje na stupac 'Dob' za sortiranje zapisa. Ključna riječ DESC sortirat će zapise silaznim redoslijedom.
Dobit ćete sljedeći izlaz:
iskaznica | Ime | Dob | Adresa | Plaća |
---|---|---|---|---|
3 | Ajeet Bhargav | Četiri pet | Meerut | 65000 |
5 | Balwant Singh | Četiri pet | Varanasi | 36000 |
4 | Ritesh Yadav | 36 | Azamgarh | 26000 |
10 | Sahil Šejh | 35 | Aurangabad | 68800 |
9 | Akash Yadav | 32 | Mumbai | 43500 |
8 | Neeru Sharma | 29 | Pune | 40000 |
6 | Mahesh Sharma | 26 | Mathura | 22000 |
2 | Shiva Tiwari | 22 | Bhopal | 21000 |
1 | Himani Gupta | dvadeset i jedan | Modi Nagar | 22000 |
7 | Rohit Srivastava | 19 | Ahmedabad | 38000 |
Svi zapisi prisutni u tablici kupaca prikazani su silaznim redoslijedom prema dobi korisnika.
Zamislite da imamo drugu tablicu pod nazivom agenti sa sljedećim zapisima:
POMOĆ | Ime | Radno područje | Dobit_postotak | Kontakt broj | Plaća |
---|---|---|---|---|---|
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
3 | Prachi Desai | Mumbai | 2 | 9056123432 | 60000 |
4 | Shivani More | Pune | 3 | 8894236789 | 35500 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
7 | rekao je Shweta | Chandigarh | 6 | 8898786453 | 31670 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
9 | Anushka Tripathi | Na prstima | 9 | 8909124326 | 38000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
Primjer 1:
Napišite upit za sortiranje zapisa silaznim redoslijedom imena agenata pohranjenih u tablici agenata.
Upit:
mysql> SELECT *FROM agents ORDER BY Name DESC;
Ovdje u SELECT upitu, klauzula ORDER BY se primjenjuje na stupac 'Ime' za sortiranje zapisa. Ključna riječ DESC sortirat će zapise silaznim redoslijedom.
Dobit ćete sljedeći izlaz:
POMOĆ | Ime | Radno područje | Dobit_postotak | Kontakt broj | Plaća |
---|---|---|---|---|---|
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
7 | rekao je Shweta | Chandigarh | 6 | 8898786453 | 31670 |
4 | Shivani More | Pune | 3 | 8894236789 | 35500 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
3 | Prachi Desai | Mumbai | 2 | 9056123432 | 60000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
9 | Anushka Tripathi | Na prstima | 9 | 8909124326 | 38000 |
Svi zapisi prisutni u tablici agenata prikazani su silaznim redoslijedom imena agenta.
Primjer 2:
Napišite upit za sortiranje zapisa prema silaznom redoslijedu plaće agenta pohranjenih u tablici agenata.
Upit:
mysql> SELECT *FROM agents ORDER BY Salary DESC;
Ovdje u SELECT upitu, klauzula ORDER BY primjenjuje se na stupac 'Plaća' za sortiranje zapisa. Ključna riječ DESC sortirat će zapise silaznim redoslijedom.
Dobit ćete sljedeći izlaz:
POMOĆ | Ime | Radno područje | Dobit_postotak | Kontakt broj | Plaća |
---|---|---|---|---|---|
3 | Prachi Desai | Mumbai | 2 | 9056123432 | 60000 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
9 | Anushka Tripathi | Na prstima | 9 | 8909124326 | 38000 |
4 | Shivani More | Pune | 3 | 8894236789 | 35500 |
7 | rekao je Shweta | Chandigarh | 6 | 8898786453 | 31670 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
Svi zapisi prisutni u tablici agenata prikazani su silaznim redoslijedom plaće agenta.
Primjer 3:
Napišite upit za sortiranje zapisa silaznim redoslijedom radnog područja agenta pohranjenih u tablici agenata.
Upit:
mysql> SELECT *FROM agents ORDER BY WorkArea DESC;
Ovdje u SELECT upitu, klauzula ORDER BY se primjenjuje na stupac 'WorkArea' za sortiranje zapisa. Ključna riječ DESC sortirat će zapise silaznim redoslijedom.
Dobit ćete sljedeći izlaz:
POMOĆ | Ime | Radno područje | Dobit_postotak | Kontakt broj | Plaća |
---|---|---|---|---|---|
9 | Anushka Tripathi | Na prstima | 9 | 8909124326 | 38000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
4 | Shivani More | Pune | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Mumbai | 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 | rekao je Shweta | Chandigarh | 6 | 8898786453 | 31670 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
Svi zapisi prisutni u tablici agenata prikazani su silaznim redoslijedom radnog područja agenta.
Primjer 4:
Napišite upit za sortiranje zapisa prema silaznom redoslijedu postotka profita agenta pohranjenih u tablici agenata.
Upit:
mysql> SELECT *FROM agents ORDER BY Profit_Percent DESC;
Ovdje u SELECT upitu, klauzula ORDER BY primjenjuje se na stupac 'Profit_Percent' za sortiranje zapisa. Ključna riječ DESC sortirat će zapise silaznim redoslijedom.
Dobit ćete sljedeći izlaz:
POMOĆ | Ime | Radno područje | Dobit_postotak | Kontakt broj | Plaća |
---|---|---|---|---|---|
9 | Anushka Tripathi | Na prstima | 9 | 8909124326 | 38000 |
6 | Rohini Kulkarni | Ambala | 8 | 7890945612 | 25670 |
10 | Devika Sharma | Goa | 7 | 7864523145 | 44050 |
7 | rekao je Shweta | Chandigarh | 6 | 8898786453 | 31670 |
2 | Sakshi Kumari | Chennai | 5 | 8190567342 | 25000 |
5 | Pallavi Singh | Delhi | 4 | 7798092341 | 38700 |
4 | Shivani More | Pune | 3 | 8894236789 | 35500 |
3 | Prachi Desai | Mumbai | 2 | 9056123432 | 60000 |
8 | Sonakshi Tiwari | Udaipur | 2 | 9809453421 | 25050 |
1 | Gurpreet Singh | Bangalore | 1 | 9989675432 | 43000 |
Svi zapisi prisutni u tablici agenata prikazani su silaznim redoslijedom postotka profita agenta.