Sortering af poster via SQL-forespørgsel i Python
For at sortere rækkerne i resultatet,
skal du bruge kommandoen ORDER
BY.
Eksempel
Lad os vælge alle brugere fra vores tabel users og
sortere dem efter alder fra
mindst til størst:
query = "SELECT * FROM users ORDER BY age"
Resultatet af den udførte kode:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
Eksempel
Lad os ændre sorteringsrækkefølgen ved hjælp af
kommandoen DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Resultatet af den udførte kode:
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Eksempel
Lad os vælge alle brugere med en løn på 500
og sortere dem efter alder fra mindst
til størst:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Resultatet af den udførte kode:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Eksempel
Du kan sortere efter ikke ét felt, men efter flere. Lad os som et eksempel vælge alle brugere og sortere dem først efter stigende alder, og brugere med samme alder sorterer vi efter stigende løn:
query = "SELECT * FROM users ORDER BY age, salary"
Resultatet af den udførte kode:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
Eksempel
Kommandoen ORDER BY kan kombineres
med LIMIT. I dette tilfælde skal du
skrive sorteringskommandoen først og derefter - limit.
I det følgende eksempel sorterer vi først
posterne efter stigende alder, og derefter
tager vi de første 3 stykker:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Resultatet af den udførte kode:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Praktiske opgaver
Hent alle brugere og sorter dem efter stigende løn.
Hent alle brugere og sorter dem efter faldende løn.
Hent alle brugere og sorter dem efter navn.
Hent brugere med en løn på 500 og
sorter dem efter alder.
Hent alle brugere og sorter dem efter navn og efter løn.
Sorter brugerne efter stigende løn
og få de første 3 medarbejdere fra
sorteringsresultatet.
Sorter brugerne efter faldende løn
og få de første 3 brugere fra
sorteringsresultatet.