It sorts the rows returned by a query based on one or more columns, either in ascending (default) or descending order.
Click to reveal answer
beginner
How do you sort query results by multiple columns in SQL?
List the columns separated by commas in the ORDER BY clause, like ORDER BY column1, column2. The sorting happens first by column1, then by column2 within the same values of column1.
Click to reveal answer
beginner
What is the default sorting order when using ORDER BY without specifying ASC or DESC?
The default sorting order is ascending (ASC), which means from smallest to largest or alphabetically A to Z.
Click to reveal answer
intermediate
Write a query to sort employees first by department ascending, then by salary descending.
Example query: SELECT * FROM employees ORDER BY department ASC, salary DESC;
Click to reveal answer
beginner
Why would you use multiple columns in an ORDER BY clause?
To organize data more precisely. For example, sorting by last name and then by first name helps list people alphabetically by full name.
Click to reveal answer
What happens if you write ORDER BY age, name in a query?
ARows are sorted by name first, then by age within the same name.
BRows are sorted by age first, then by name within the same age.
CRows are sorted randomly.
DQuery will return an error.
✗ Incorrect
The ORDER BY clause sorts by the first column listed (age), then by the second (name) for rows with the same age.
Which keyword sorts data in descending order?
ADOWN
BASC
CDESC
DREVERSE
✗ Incorrect
DESC sorts data from largest to smallest or Z to A.
If you want to sort by two columns, which is the correct syntax?
AORDER BY column1 AND column2
BORDER BY column1; ORDER BY column2
CORDER BY (column1, column2)
DORDER BY column1, column2
✗ Incorrect
Use commas to separate columns in ORDER BY to sort by multiple columns.
What is the default sort order if none is specified?
AAscending
BNo sorting
CRandom
DDescending
✗ Incorrect
The default sort order is ascending (ASC).
Which of these queries sorts employees by salary descending and then by name ascending?
AORDER BY salary DESC, name ASC
BORDER BY name ASC, salary DESC
CORDER BY salary, name
DORDER BY salary ASC, name DESC
✗ Incorrect
The first column sorts by salary descending, the second by name ascending.
Explain how to use the ORDER BY clause to sort data by multiple columns.
Think about sorting a list by last name, then first name.
You got /4 concepts.
Describe a real-life example where sorting by multiple columns is useful.
Imagine organizing a phone book or a store inventory.
You got /3 concepts.
Practice
(1/5)
1. What does the ORDER BY clause with multiple columns do in a MySQL query?
easy
A. Sorts the result set by the first column, then by the second column if there are ties.
B. Filters rows based on multiple column values.
C. Joins tables using multiple columns.
D. Groups rows by multiple columns.
Solution
Step 1: Understand the purpose of ORDER BY with multiple columns
The ORDER BY clause sorts rows in the result set. When multiple columns are listed, sorting happens first by the first column.
Step 2: Recognize tie-breaking with the second column
If two or more rows have the same value in the first column, the second column is used to sort those tied rows.
Final Answer:
Sorts the result set by the first column, then by the second column if there are ties. -> Option A
Quick Check:
ORDER BY multiple columns sorts stepwise [OK]
Hint: Think of sorting like sorting by last name, then first name [OK]
Common Mistakes:
Confusing ORDER BY with filtering (WHERE clause)
Thinking ORDER BY changes data, not just order
Assuming ORDER BY groups rows
2. Which of the following is the correct syntax to order a table by age ascending and then by name descending in MySQL?
easy
A. ORDER BY age, name DESCENDING
B. ORDER BY age ASC, name DESC
C. ORDER BY age DESC, name ASC
D. ORDER BY age ASCENDING, name DESCENDING
Solution
Step 1: Recall correct keywords for sorting order
MySQL uses ASC for ascending and DESC for descending order.
Step 2: Check syntax for multiple columns
Multiple columns are separated by commas, each followed optionally by ASC or DESC.
Final Answer:
ORDER BY age ASC, name DESC -> Option B
Quick Check:
ASC and DESC keywords are short and exact [OK]
Hint: Use ASC for ascending, DESC for descending exactly [OK]
Common Mistakes:
Using DESCENDING instead of DESC
Mixing ASC and DESC keywords incorrectly
Omitting commas between columns
3. Given the table Employees with columns department and salary, what will the result order be for this query?
SELECT * FROM Employees ORDER BY department ASC, salary DESC;
medium
A. Rows sorted by salary descending, then department ascending.
B. Rows sorted randomly because ORDER BY is incorrect.
C. Rows sorted by department descending, then salary ascending.
D. Rows sorted by department alphabetically, then highest salary first within each department.
Solution
Step 1: Analyze the ORDER BY clause
The query orders rows first by department in ascending (alphabetical) order.
Step 2: Understand secondary sorting by salary
Within each department group, rows are sorted by salary in descending order (highest salary first).
Final Answer:
Rows sorted by department alphabetically, then highest salary first within each department. -> Option D
Quick Check:
ORDER BY column1 ASC, column2 DESC sorts stepwise [OK]
Hint: First column sorts main groups, second column sorts inside groups [OK]
Common Mistakes:
Reversing the order of columns in ORDER BY
Confusing ASC and DESC directions
Assuming ORDER BY sorts only by one column
4. Identify the error in this MySQL query:
SELECT * FROM Products ORDER BY price ASC name DESC;
medium
A. Missing comma between price ASC and name DESC.
B. Incorrect use of ASC and DESC keywords.
C. ORDER BY cannot have more than one column.
D. SELECT * cannot be used with ORDER BY.
Solution
Step 1: Check syntax for multiple columns in ORDER BY
Multiple columns must be separated by commas in the ORDER BY clause.
Step 2: Identify missing comma
The query misses a comma between price ASC and name DESC, causing syntax error.
Final Answer:
Missing comma between price ASC and name DESC. -> Option A
Quick Check:
Separate columns with commas in ORDER BY [OK]
Hint: Always put commas between columns in ORDER BY [OK]
Common Mistakes:
Forgetting commas between columns
Misplacing ASC/DESC keywords
Thinking ORDER BY limits to one column
5. You have a table Students with columns grade (integer), last_name, and first_name. You want to list students sorted by grade descending, then by last name ascending, and finally by first name ascending. Which query achieves this?
hard
A. SELECT * FROM Students ORDER BY last_name ASC, first_name ASC, grade DESC;
B. SELECT * FROM Students ORDER BY grade ASC, last_name DESC, first_name DESC;
C. SELECT * FROM Students ORDER BY grade DESC, last_name ASC, first_name ASC;
D. SELECT * FROM Students ORDER BY grade DESC first_name ASC last_name ASC;
Solution
Step 1: Understand sorting priorities
The primary sort is by grade descending, so highest grades come first.
Step 2: Apply secondary and tertiary sorting
Within the same grade, sort by last_name ascending (A to Z), then by first_name ascending.
Step 3: Check syntax correctness
SELECT * FROM Students ORDER BY grade DESC, last_name ASC, first_name ASC; uses correct syntax with commas separating columns and proper ASC/DESC keywords.
Final Answer:
SELECT * FROM Students ORDER BY grade DESC, last_name ASC, first_name ASC; -> Option C
Quick Check:
Order by multiple columns with correct directions and commas [OK]
Hint: List columns in ORDER BY with commas and correct ASC/DESC [OK]
Common Mistakes:
Wrong order of columns in ORDER BY
Missing commas between columns
Mixing ASC and DESC incorrectly
Omitting ASC/DESC keywords
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.