ORDER BY
ORDER BY is an SQL Keyword used to allow the ordering of results in either ascending or descending order.
SELECT First Name, Surname, Class FROM PupilORDER BY Surname ASC;This would return:
| First Name | Surname | Class |
| Davie | Boland | 1I2 |
| Antonia | Gallagher | 1M2 |
| Tom | Glacney | 1M1 |
| Amy | Jones | 1M1 |
| Tabiso | Matazinadze | 1T1 |
| James | McNamee | 1T1 |
| Amy | McNamee | 1T1 |
| Pawel | McTavish | 1I1 |
| Beatrice | Panner | 1T2 |
| Nisa | Singh | 1T1 |
| First Name | Davie |
|---|---|
| Surname | Boland |
| Class | 1I2 |
| First Name | Antonia |
|---|---|
| Surname | Gallagher |
| Class | 1M2 |
| First Name | Tom |
|---|---|
| Surname | Glacney |
| Class | 1M1 |
| First Name | Amy |
|---|---|
| Surname | Jones |
| Class | 1M1 |
| First Name | Tabiso |
|---|---|
| Surname | Matazinadze |
| Class | 1T1 |
| First Name | James |
|---|---|
| Surname | McNamee |
| Class | 1T1 |
| First Name | Amy |
|---|---|
| Surname | McNamee |
| Class | 1T1 |
| First Name | Pawel |
|---|---|
| Surname | McTavish |
| Class | 1I1 |
| First Name | Beatrice |
|---|---|
| Surname | Panner |
| Class | 1T2 |
| First Name | Nisa |
|---|---|
| Surname | Singh |
| Class | 1T1 |
By default, the surname column/field is sorted in ascending order but the ASC keyword is shown to exemplify its existence. To sort in descending order, add DESC at the end of the statement.
SELECT First Name, Surname, Class FROM PupilORDER BY Surname DESC;This would return:
| First Name | Surname | Class |
| Nisa | Singh | 1T1 |
| Beatrice | Panner | 1T2 |
| Pawel | McTavish | 1I1 |
| James | McNamee | 1T1 |
| Amy | McNamee | 1T1 |
| Tabiso | Matazinadze | 1T1 |
| Amy | Jones | 1M1 |
| Tom | Glacney | 1M1 |
| Antonia | Gallagher | 1M2 |
| Davie | Boland | 1I2 |
| First Name | Nisa |
|---|---|
| Surname | Singh |
| Class | 1T1 |
| First Name | Beatrice |
|---|---|
| Surname | Panner |
| Class | 1T2 |
| First Name | Pawel |
|---|---|
| Surname | McTavish |
| Class | 1I1 |
| First Name | James |
|---|---|
| Surname | McNamee |
| Class | 1T1 |
| First Name | Amy |
|---|---|
| Surname | McNamee |
| Class | 1T1 |
| First Name | Tabiso |
|---|---|
| Surname | Matazinadze |
| Class | 1T1 |
| First Name | Amy |
|---|---|
| Surname | Jones |
| Class | 1M1 |
| First Name | Tom |
|---|---|
| Surname | Glacney |
| Class | 1M1 |
| First Name | Antonia |
|---|---|
| Surname | Gallagher |
| Class | 1M2 |
| First Name | Davie |
|---|---|
| Surname | Boland |
| Class | 1I2 |
Sorting multiple columns
It is possible to apply a sort on more than one column.
The first sort would be applied in its entirety, with the second sort only applied if two records in the column used for the first sort have the same value.
SELECT First Name, Class, Merit Points FROM PupilORDER BY Class DESC, Merit Points ASC;Would return:
The class column is fully sorted in descending order. Within each class group, the Merit Points column is sorted in ascending order.