Sortering van rekords via SQL-navraag in Python
Om die rye van die resultaat te sorteer,
moet jy die opdrag ORDER
BY gebruik.
Voorbeeld
Laat ons alle gebruikers uit ons tabel users kies
en hulle sorteer volgens ouderdom van
kleinste na grootste:
query = "SELECT * FROM users ORDER BY age"
Resultaat van die uitgevoerde 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}
Voorbeeld
Laat ons die sorteer volgorde verander met behulp van
die opdrag DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Resultaat van die uitgevoerde 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}
Voorbeeld
Laat ons alle gebruikers met 'n salaris van 500 kies
en hulle sorteer volgens ouderdom van kleinste
na grootste:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Resultaat van die uitgevoerde 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}
Voorbeeld
Jy kan sorteer volgens meer as een vel. Kom ons kies vir die voorbeeld alle gebruikers en sorteer hulle eers volgens toenemende ouderdom, en gebruikers met dieselfde ouderdomme sorteer ons volgens toenemende salaris:
query = "SELECT * FROM users ORDER BY age, salary"
Resultaat van die uitgevoerde 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}
Voorbeeld
Die opdrag ORDER BY kan gekombineer word
met LIMIT . In hierdie geval moet jy eers
die sorteeropdrag skryf, en dan - die limiet.
In die volgende voorbeeld sorteer ons eers die
rekords volgens toenemende ouderdom, en dan
neem ons die eerste 3 stukke:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Resultaat van die uitgevoerde 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}
Praktiese take
Kry alle gebruikers en sorteer hulle volgens toenemende salaris.
Kry alle gebruikers en sorteer hulle volgens afnemende salaris.
Kry alle gebruikers en sorteer hulle volgens naam.
Kry gebruikers met 'n salaris van 500 en
sorteer hulle volgens ouderdom.
Kry alle gebruikers en sorteer hulle volgens naam en volgens salaris.
Sorteer gebruikers volgens toenemende salaris
en kry die eerste 3 werkers uit die
sorteerresultaat.
Sorteer gebruikers volgens afnemende salaris
en kry die eerste 3 gebruikers uit die
sorteerresultaat.