SOME (a synonym for ANY in most implementations) is a quantified comparison operator defined by the SQL standard. It bridges scalar-to-set comparison by evaluating a boolean predicate between a left-hand scalar expression and every value produced by the subquery on the right-hand side. If the predicate is TRUE for at least one row, the overall expression yields TRUE. If the subquery returns no rows, the result is UNKNOWN (NULL). If the predicate is never TRUE but at least one comparison evaluates to FALSE or UNKNOWN, the result is FALSE or UNKNOWN respectively.Permitted comparison operators are =, != (or <>), <, <=, >, and >=. SOME cannot be used with BETWEEN, LIKE, or IN directly. Because SOME is a quantifier, it must follow the operator: expr operator SOME (subquery). The subquery must return exactly one column, and it is implicitly coerced to the datatype of the left-hand expression when possible.SOME is useful when you need at least one match but do not want the strictness of ALL. It differs from IN because IN tests for equality only, whereas SOME allows any comparison operator.
SQL ANY, SQL ALL, SQL IN, Subqueries, Comparison Operators
SQL-92 Standard
No. They are interchangeable keywords in the SQL standard, and nearly all databases treat them as synonyms.
The expression evaluates to UNKNOWN (effectively NULL), which behaves like FALSE in WHERE clauses unless you use IS UNKNOWN.
No. The subquery must return exactly one column so the comparison is unambiguous.
Use SOME when you need operators other than equality, such as greater than or less than. IN only checks for equality.