Logical Operator Precedence

When more than one logical operator is used in a statement, NOT is evaluated first, then AND, and finally OR. Arithmetic (and bitwise) operators are handled before logical operators.

For example, the following query finds all business books in the titles table, no matter what their advances are, as well as all psychology books that have an advance greater than $5500:

SELECT title_id, type, advance
FROM titles
WHERE type = 'business' OR type = 'psychology'
    AND advance > $5500

title_id type         advance                    
-------- ------------ -------------------------- 
BU1032   business     5,000.00                   
BU1111   business     5,000.00                   
BU2075   business     10,125.00                  
BU7832   business     5,000.00                   
PS1372   psychology   7,000.00                   
PS2106   psychology   6,000.00                   

(6 row(s) affected)

In this example, the advance condition pertains to psychology books and not to business books because AND has precedence over OR.

You can change the meaning of the query by adding parentheses to force evaluation of the OR first. This query finds all business and psychology books that have advances over $5500:

SELECT title_id, type, advance
FROM titles
WHERE (type = 'business' OR type = 'psychology')
    AND advance > $5500

title_id     type                       advance      
------------ -------------------------- ----------- 
business     6,281.25                   30788       
mod_cook     7,500.00                   24278       
popular_comp 7,500.00                   12875       
psychology   4,255.00                   9939        
trad_cook    6,333.33                   19566       
UNDECIDED    (null)                     (null)      

(6 row(s) affected)

The use of parentheses, even when not required, can improve readability of queries and reduce the chance of making a subtle mistake because of operator precedence. There is no significant performance penalty in using parentheses.

For more information, see Search Conditions in the Microsoft SQL Server Transact-SQL Reference.