SQL ANY Operator
SQL ANY operator used with WHERE or HAVING clause. It compares a value from WHERE or HAVING condition to each value from a subquery. It returns true if the result of subquery contains one or more rows. ANY must be preceded by one of the following 6 comparison operators
- Less than (<)
- Greater than (>)
- Less or equal to (<=)
- Greater or equal to (>=)
- Equal to (=)
- Not equal to <>
Let's take a look at the syntax:
SELECT column(s) FROM table WHERE column comparison_operator ANY (SELECT column FROM table WHERE condition);
As you can see in the syntax above, ANY must be preceded one of the 6 comparison operators.
Let's look at the example.
NOTE: Open a DEMO link which is given at the end of the article to understand the example better.
SELECT ItemName FROM items WHERE ItemID = ANY (SELECT ItemID FROM orderdetails WHERE Quantity = 25);
We have used 2 tables in the example. One is items and other one is orderdetails. As per the name items has items related details and orderdetails has the details of orders placed.
The SQL is going to execute the subquery inside ANY. It will check in the orderdetails that if there is an item which was ordered in 25 quantities in any order. If the subquery returns at least one row, the results of the ANY will be set as TRUE and returns the ItemID.
Now after that it's just a simple query as follows.
SELECT ItemName FROM items WHERE ItemID = 1;
At the end, the whole query will returns the ItemName form items table.
See another example but with greater than (>) operator.
SELECT ItemName FROM items WHERE ItemID = ANY (SELECT ItemID FROM orderdetails WHERE Quantity >10);
The above example will returns the name of the items that was ordered in more than 10 quantities in any single order.