# AND and OR logical operators

Two or more relations can be logically joined using the logical operators `AND` and `OR`. Logical operators combine relations according to the following rules:

• The ampersand (&) symbol is a valid substitute for the logical operator `AND`. The vertical bar ( | ) is a valid substitute for the logical operator `OR`.
• Only one logical operator can be used to combine two relations. However, multiple relations can be combined into a complex logical expression.
• Regardless of the number of relations and logical operators used to build a logical expression, the result is either true, false, or indeterminate because of missing values.
• Operators or expressions cannot be implied. For example, `X EQ 1 OR 2` is illegal; you must specify `X EQ 1 OR X EQ 2`.
• The `ANY` and `RANGE` functions can be used to simplify complex expressions.

AND . Both relations must be true for the complex expression to be true.

OR . If either relation is true, the complex expression is true.

The following table lists the outcomes for `AND` and `OR` combinations.

Table 1. Logical outcomes
Expression Outcome Expression Outcome

true AND true

= true

true OR true

= true

true AND false

= false

true OR false

= true

false AND false

= false

false OR false

= false

true AND missing

= missing

true OR missing

= true*

missing AND missing

= missing

missing OR missing

= missing

false AND missing

= false*

false OR missing

= missing

* Expressions where the outcome can be evaluated with incomplete information. See the topic Missing values in logical expressions for more information.

Example

``````DATA LIST FREE /var1 var2 var3.
BEGIN DATA
1 1 1
1 2 1
1 2 3
4 2 4
END DATA.
SELECT IF var1 = 4 OR ((var2 > var1) AND (var1 <> var3)).
``````
• Any case that meets the first condition--`var1 = 4`--will be selected, which in this example is only the last case.
• Any case that meets the second condition will also be selected. In this example, only the third case meets this condition, which contains two criteria: var2 is greater than var1 and var1 is not equal to var3.