Vous pouvez regrouper deux expressions WHERE ou plus, liées par des opérateurs AND et/ou OR, afin de créer une expression composée.
Par défaut, lorsque des phrases WHERE multiples sont évaluées, les opérateurs AND logiques sont traités avant les opérateurs OR. Dans les expressions composées, vous pouvez employer des parenthèses pour changer l'ordre de l'évaluation. Tous les opérateurs AND et OR entourés de parenthèses sont évalués les premiers, suivis des opérateurs AND et OR sans parenthèses.
Vous devez toujours employer des parenthèses dans les expressions complexes afin de vous assurer que l'expression soit évaluée correctement. Par exemple :
WHERE (SEATS EQ 2) AND (SEATS NOT-FROM 3 TO 4)
Cela s'avère particulièrement utile lorsque vous mélangez des tests OR littéraux avec des tests AND et OR logiques :
WHERE (LAST_NAME EQ 'CROSS') OR (LAST_NAME EQ 'JONES')
ou
WHERE (CURR_SAL GT 20000) AND (DEPARTMENT IS 'MIS') AND (CURR_JOBCODE CONTAINS 'A')
WHERE (LAST_NAME EQ 'CROSS' OR 'JONES')
Cet exemple illustre l'impact des parenthèses sur l'évaluation des opérateurs littéraux OR et des opérateurs logiques AND.
Dans cette requête, chaque expression entourée de parenthèses est évaluée la première dans l'ordre dans lequel elle s'affiche. Notez que la première expression contient un opérateur littéral OR. Le résultat de chaque expression est évalué par la suite par l'opérateur logique AND.
Si les parenthèses sont omises, l'opérateur logique AND est évalué avant l'opérateur littéral OR.
TABLE FILE EMPLOYEE PRINT CURR_SAL BY LAST_NAME WHERE (LAST_NAME EQ 'CROSS' OR 'JONES') AND (CURR_SAL GT 22000) END
La sortie est :
LAST_NAME CURR_SAL --------- -------- CROSS $27,062.00
WebFOCUS |