SQL ALL Keyword

Structured Query Language (SQL) is a powerful tool for managing and manipulating relational databases. One of the lesser-known but highly useful keywords in SQL is “ALL.” In this article, we’ll delve into the intricacies of the SQL ALL keyword, exploring its syntax, use cases, and examples.

Syntax of the SQL ALL Keyword

The SQL ALL keyword is often used in conjunction with comparison operators, such as =, <, >, <=, >=, <>, or !=. The basic syntax for using ALL in a query is as follows:

SELECT column(s)
FROM table
WHERE column operator ALL (subquery);

Here, “column” represents the column you want to filter, “table” is the table from which you’re retrieving data, “operator” is the comparison operator, and “subquery” is a nested query that returns a set of values.

Understanding the ALL Keyword in Comparison

The ALL keyword is typically used in situations where you want to compare a value to all values in a set. The result of the subquery is a set of values, and the main query filters rows based on the comparison with all the values in that set.

Let’s explore some common use cases:

1. Using ALL with Numeric Values

Consider a scenario where you want to retrieve records of employees who have a salary greater than all the salaries in the ‘Sales’ department. The query might look like this:

SELECT employee_name
FROM employees
WHERE salary > ALL (SELECT salary FROM employees WHERE department = 'Sales');

This query will return the names of employees whose salary is higher than every salary in the ‘Sales’ department.

2. Using ALL with Textual Values

You can also use ALL with textual values. For instance, if you want to find customers whose last name comes after all the last names starting with ‘A,’ you can use the following query:

SELECT customer_name
FROM customers
WHERE last_name > ALL (SELECT last_name FROM customers WHERE last_name LIKE 'A%');

This query retrieves customers whose last names are alphabetically greater than all last names starting with ‘A.’

3. Using ALL with Dates

The ALL keyword can be applied to date comparisons as well. Suppose you want to find orders that were placed after all orders placed by a specific customer. The query might look like this:

SELECT order_id
FROM orders
WHERE order_date > ALL (SELECT order_date FROM orders WHERE customer_id = 123);

This query retrieves orders with an order date later than all the orders placed by customer ID 123.

Important Considerations

While the ALL keyword is powerful, it’s essential to understand its implications and limitations:

  1. Subquery Results: The subquery must return a set of values. If the subquery returns no rows, the result will be true (since the condition holds for no values), and if it returns NULL, the result will be NULL.
  2. Comparison Operators: The choice of the comparison operator is crucial. For example, using “>” means the value must be greater than all values in the set, while “<” implies the value must be less than all values.
  3. Subquery Complexity: Keep in mind that the subquery can be as complex as needed, involving joins, aggregations, and filtering.


The SQL ALL keyword provides a powerful mechanism for comparing a value to all values in a set, enabling more nuanced and specific queries. By understanding its syntax and various use cases, you can leverage the ALL keyword to extract valuable insights from your relational databases. As always, testing and experimenting with your specific database are essential to ensure accurate and desired results.

Leave a Comment