DTRHELP.HLB  —  Boolean Expressions
       A Boolean expression is the logical representation of a
       relationship between value expressions. The value of a Boolean
       expression is either true or false. When dealing with relational
       sources, the value of a Boolean expression is either TRUE, FALSE,
       or UNKNOWN according to SQL/Services standards. The UNKNOWN
       boolean value may result if either value expression in a Boolean
       expression is null.

       You can use Boolean expressions in the following DEC DATATRIEVE
       clauses and statements:

       o  WITH clause in a record selection expression

       o  WITH clause in a SELECT statement

       o  IF clause of an IF-THEN-ELSE statement

       o  IF clause of an IF-THEN-ELSE value expression

       o  CHOICE statement

       o  CHOICE value expression

       o  VALID IF clause in a record definition

       o  WHILE statement

       The DEC DATATRIEVE CHOICE and IF-THEN-ELSE value expressions, and
       the CHOICE and IF-THEN-ELSE statements can contain an additional
       ELSE clause to support the UNKNOWN boolean value.

       Boolean expressions consist of value expressions, relational
       operators, and Boolean operators. Relational operators control
       the comparison of value expressions. Boolean operators enable you
       to join two or more Boolean expressions and to reverse the value
       of a Boolean expression. All Boolean expressions contain value
       expressions and relational operators, and some contain Boolean
       operators.

1  –  Relational Operators

       Relational operators compare value expressions, check whether a
       code string is contained in a table, and check whether a record
       stream is empty or not. Most Boolean expressions contain a field
       name, a relational operator, and a value expression.

       The relational operators are:

       o  EQUAL

       o  NOT EQUAL

       o  CONTAINING

       o  NOT CONTAINING

       o  STARTING WITH

       o  GREATER THAN

       o  GREATER EQUAL

       o  LESS THAN

       o  LESS EQUAL

       o  BETWEEN

       o  MISSING

       o  NOT MISSING

       o  IN table-name

       o  NOT IN table-name

       o  ANY

       o  NOT ANY

       o  AFTER

       o  BEFORE

       The STARTING WITH relational operator is designed to work on text
       strings and can give inconsistent results when used with numeric
       fields.

       When handling character string literals, DEC DATATRIEVE considers
       lowercase letters to have a greater value than uppercase letters.
       Within each case, however, DEC DATATRIEVE sorts the letters
       alphabetically, and considers the letters near the beginning of
       the alphabet to be smaller than those near the end. Consequently,
       "ALBIN" is less than "AMERICAN."

       The order and value associated with alphanumeric characters is
       determined by the ASCII collating sequence. Lowercase letters
       have a higher ASCII value than uppercase letters. See the OpenVMS
       documentation for more information on the DEC Multinational
       Character Set, which includes the ASCII character set.

       In Boolean expressions using the relational operator CONTAINING,
       the comparison of the value expression and the field value is
       case insensitive. The comparison is case insensitive regardless
       of whether you enclose a character string literal within
       quotation marks.

       The following examples show how to use relational operators that
       compare field values to value expressions:

       DTR> FIND YACHTS WITH BEAM EQ 9,10,14
       [50 records found]
       DTR> PRINT CURRENT WITH RIG NE "SLOOP"

                                      LENGTH
                                       OVER
       MANUFACTURER   MODEL     RIG    ALL   WEIGHT BEAM  PRICE

        EASTWARD    HO         MS      24     7,000  09  $15,900
        FISHER      30         KETCH   30    14,500  09
        GRAMPIAN    34         KETCH   33    12,000  10  $29,675

       The last PRINT statement can be written with the value expression
       preceding the field name. DEC DATATRIEVE displays the same
       records:

       DTR> PRINT CURRENT WITH "SLOOP" NE RIG

                                      LENGTH
                                       OVER
       MANUFACTURER   MODEL     RIG    ALL   WEIGHT BEAM  PRICE

        EASTWARD    HO         MS      24     7,000  09  $15,900
        FISHER      30         KETCH   30    14,500  09
        GRAMPIAN    34         KETCH   33    12,000  10  $29,675

2  –  Boolean Operators

       There are four Boolean operators: AND, OR, NOT, and BUT. With
       AND, OR, and BUT, you can join two or more Boolean expressions to
       form a single Boolean expression. NOT allows you to reverse the
       value of a Boolean expression.

       The AND and BUT operators perform the same function. If you link
       Boolean expressions with either AND or BUT, the resulting Boolean
       expression is true only if all the Boolean operators linked with
       either AND or BUT are true.

       If you link Boolean expressions with OR, the resulting Boolean
       expression is true if any one of the Boolean linked with OR are
       true.

       If you precede a Boolean expression with NOT, the resulting
       Boolean expression is true if the Boolean expression following
       NOT is false.

       The following examples show the use of Boolean operators:

       DTR> READY YACHTS
       DTR> PRINT YACHTS WITH BUILDER = "PEARSON" AND LOA = 30

                                      LENGTH
                                       OVER
       MANUFACTURER   MODEL     RIG    ALL   WEIGHT BEAM  PRICE

        PEARSON     30         SLOOP   30     8,320  09

       DTR> FIND YACHTS WITH BUILDER = "PEARSON" OR LOA = 30
       [21 records found]

       DTR> READY FAMILIES
       DTR> PRINT FAMILIES WITH FATHER NOT EQ "JIM" AND
       [Looking for Boolean expression]
       CON> ANY KIDS WITH AGE GT 31

                             NUMBER    KID
         FATHER     MOTHER    KIDS     NAME    AGE

       JEROME     RUTH          4   ERIC       32
                                    CISSY      24
                                    NANCY      22
                                    MICHAEL    20
       HAROLD     SARAH         3   CHARLIE    31
                                    HAROLD     35
                                    SARAH      27

       DTR>

       You can also use parentheses to group Boolean expressions. DEC
       DATATRIEVE evaluates Boolean expressions in parentheses before
       evaluating other Boolean expressions. If a Boolean expression
       contains Boolean operators as well as parentheses, DEC DATATRIEVE
       evaluates the Boolean expression in the following order:

       1. Expressions enclosed in parentheses

       2. Expressions preceded by NOT

       3. Expressions combined with AND or BUT

       4. Expressions combined with OR
Close Help