# Sorting results

# Sorting results in SQL

Sorting results can be achieved by using a modifier command at the end of the SQL querry

    #load the extension
    %load_ext sql
    #connect to the database
    %sql sqlite:///mydatabase.db

    'Connected: @mydatabase.db'

The results can be sorted with the command ORDER BY

SELECT column-list FROM table_name [WHERE condition] [ORDER BY column1, column2, .. columnN] [ASC | DESC]

Let's show an example where we extract the fruits that are either yellow or red

    %sql SELECT * FROM tutyfrutty WHERE color = "yellow" OR color = "red"

     * sqlite:///mydatabase.db
    Done.

index | fruit | color | kcal
--- | --- | --- | ---
0 | Banana | yellow | 89
2 | Apple | red | 52
3 | lemon | yellow | 15
7 | Cranberry | red | 308

### Ascending sort

    %sql SELECT * FROM tutyfrutty WHERE color = "yellow" OR color = "red" ORDER BY kcal ASC

     * sqlite:///mydatabase.db
    Done.

index | fruit | color | kcal
--- | --- | --- | ---
3 | lemon | yellow | 15
2 | Apple | red | 52
0 | Banana | yellow | 89
7 | Cranberry | red | 308

### descending sort

    %sql SELECT * FROM tutyfrutty WHERE color = "yellow" OR color = "red" ORDER BY kcal DESC

     * sqlite:///mydatabase.db
    Done.

index | fruit | color | kcal
--- | --- | --- | ---
7 | Cranberry | red | 308
0 | Banana | yellow | 89
2 | Apple | red | 52
3 | lemon | yellow | 15

### Sort by multiple columns

You can sort by more than one column. Just specify multiple columns in the ORDER BY keyword. In the example, we will sort alphabetically on the color column first and sort alphabetically on the fruit column

    %sql SELECT * FROM tutyfrutty ORDER BY color, fruit ASC

     * sqlite:///mydatabase.db
    Done.

index | fruit | color | kcal
--- | --- | --- | ---
4 | lime | green | 30
1 | Orange | orange | 47
5 | plum | purple | 28
2 | Apple | red | 52
7 | Cranberry | red | 308
0 | Banana | yellow | 89
3 | lemon | yellow | 15

### Find an error or bug? Have a suggestion?

Everything on this site is avaliable on GitHub. Head on over and submit an issue. You can also message me directly by email.