Writing Logical Expressions

In this section:

A logical expression determines whether a particular condition is true. There are two kinds of logical expressions, relational and Boolean. The entities to compare determine the kind of expression.

You can use a logical expression to assign a value to a numeric variable. If the expression is true, the variable receives the value 1. If the expression is false, the variable receives the value 0.

Relational Expressions

A relational expression returns TRUE or FALSE based on the comparison of two individual values (either variables or constants). The following syntax lists the operators you can use in a relational expression:

character_expression  char_operator  character_constant 
numeric_expression  numeric_operator  numeric_constant

where:

char_operator

Can be any of the following: EQ, NE, OMITS, CONTAINS.

numeric_operator

Can be any of the following: EQ, NE, LE, LT, GE, GT.

Boolean Expressions

How to:

Boolean expressions return a value of true (1) or false (0) based on the outcome of two or more relational expressions. Boolean expressions are often used in conditional expressions, which are described in Writing Conditional Expressions. You can also assign the result of a Boolean expression to a numeric or character variable, which will be set to 1 (if the expression is true) or 0 (if it is false). They are constructed using variables and constants connected by operators.

Syntax: How to Use Boolean Expressions

The syntax of a Boolean expression is:

(relational_expression) {AND|OR} (relational_expression)
NOT (logical_expression)

Boolean expressions can themselves be used as building blocks for more complex expressions. Use AND or OR to connect the expressions and enclose each expression in parentheses.

Evaluating Logical Expressions

Reference:

If you assign a Boolean expression to a character variable, it may have the values TRUE, FALSE, 1, or 0. TRUE and 1 are equivalent, as are FALSE and 0. A numeric variable may have the values 1 or 0.

Alphanumeric constants with embedded blanks used in the expression must be enclosed in single quotation marks ('). An example is:

IF NAME EQ 'JOHN DOE'

OR cannot be used between constants in a relational expression. For example, the following expression is not valid

IF COUNTRY EQ 'US' OR 'BRAZIL' OR 'GERMANY'

Instead, it should be coded as a sequence of relational expressions:

IF (COUNTRY EQ 'US') OR (COUNTRY EQ 'BRAZIL') OR (COUNTRY EQ 'GERMANY')

Reference: Logical Operators

The following list shows the logical operators you can use in an expression:

Description

Operator

Equality

EQ

Inequality

NE

Less than

LT

Greater than

GT

Less than or equal to

LE

Greater than or equal to

GE

Contains the specified character string

CONTAINS

Omits the specified character string

OMITS

Negation

NOT

Conjunction

AND

Disjunction

OR

Boolean operators are evaluated after numeric operators from left to right in the following order of priority:

Order

Operators

1

EQ NE LE LT GE GT NOT CONTAINS OMITS

2

AND

3

OR