Using disjunctions in complex queries
ServiceNow performs conjunction (AND) statements before disjunction (OR) statements in a query.
When you create a complex query that combines AND and OR conditions, you must use parenthesis around disjunctions to ensure proper grouping of query elements.
Example
Find all closed incidents (state = 6) that are either Priority 1 or Priority 2.
-
Correct query (with parentheses):
(priority = 1 || priority = 2) && state = 6This query returns all closed incidents where the priority is 1 OR 2.
-
Incorrect query (without parentheses):
priority = 1 || priority = 2 && state = 6Without parentheses, this query is evaluated as: priority = 1 OR (priority = 2 AND state = 6). This returns ALL Priority 1 incidents regardless of state, plus only the closed Priority 2 incidents.
| Query | Evaluated as | Result |
|---|---|---|
|
(P1 OR P2) AND Closed | Closed P1 and P2 incidents only |
|
P1 OR (P2 AND Closed) | ALL P1 incidents + only closed P2 |
Always use parentheses around OR conditions when combining them with AND conditions. This ensures your query returns the expected results.