SAS Support Site Home | Samples and SAS Notes Home
SAS Notes V6-SYS.DATA-D526
ARRAY reference in Boolean expression may produce incorrect results


Array references used as expressions within a Boolean expression may produce incorrect results. Using an expression in the form of:

    "expression AND (array_ref1 OR array_ref2)"

where the "expression AND" is evaluated as true and the next expression is only array references OR'ed together, the first ARRAY_REF1 is not being evaluated, therefore incorrect results may be produced. This is also true when the expression is reversed, as:

     "(array_ref1 OR array_ref2) AND expression"

To circumvent the problem specify the array reference with the equal comparison operator and value of 1 in place of just the array reference, as in the following example:

       if var=99 AND (array_ref1=1 OR array_ref2=1)...;


Products: BASE
Component: SYS.DATA
Priority: HIGH
Status: Outstanding Problem
Date: Thu, 29 May 1997

System Release Reported Release Fixed
VM/ESA (CMS) 6.08 TS404 6.09 TS460  
OS/390 (MVS) 6.08 TS404 6.09 TS460  
IBM OS/2 6.08 TS404  
OpenVMS VAX 6.08 TS404 6.09 TS460  
VSE/ESA (VSE) 6.08 TS404  
Windows 3.11 6.08 TS404  
VM/ESA (CMS) 6.09 TS450 6.09 TS460  
OS/390 (MVS) 6.09 TS450 6.09 TS460  
OpenVMS VAX 6.09 TS450 6.09 TS460  
AIX/6000 6.12 TS020 6.12 TS045  
HP-UX Operating Systems 6.12 TS020 6.12 TS045  
IBM OS/2 6.12 TS020 6.12 TS045  
Solaris 6.12 TS020 6.12 TS045  
OpenVMS Alpha 6.12 TS020 6.12 TS045  
Windows 3.11 6.12 TS020 6.12 TS045  
Windows NT 6.12 TS020 6.12 TS045  
Windows 95 6.12 TS020 6.12 TS045  
Compaq Tru64 Unix 6.12 TS040  
Macintosh 6.12 TS040  
AIX/6000 6.09 TS027  
ConvexOS 6.09 TS027  
HP-UX Operating Systems 6.09 TS027  
Solaris 6.09 TS027  
DEC Ultrix 6.09 TS027  
OpenVMS Alpha 6.09 TS027  
Windows NT 6.09 TS027  
Intel ABI 6.10 TS018  
Silicon Graphics Unix 6.10 TS018  
Macintosh 6.10 TS037  
Compaq Tru64 Unix 6.10 TS018  
IBM OS/2 6.10 TS019  
Windows 3.11 6.10 TS019  
AIX/6000 6.11 TS020  
HP-UX Operating Systems 6.11 TS020  
IBM OS/2 6.11 TS020  
Solaris 6.11 TS020  
Windows 3.11 6.11 TS020  
Intel ABI 6.11 TS040  
Silicon Graphics Unix 6.11 TS040  
Compaq Tru64 Unix 6.11 TS040  
Windows NT 6.11 TS040  
Windows 95 6.11 TS040  

No Fixes Available