Puede combinar dos o más expresiones WHERE sencillas conectadas mediante operadores AND u OR para crear una expresión compuestas.
De forma predeterminada, cuando se evalúan múltiples frases WHERE, las lógicas AND se procesan antes que las lógicas OR. En expresiones complejas puede utilizar paréntesis para cambiar el orden de evaluación. Todos los operadores AND y OR encerrados en paréntesis se evalúan primero, seguidos por los operadores AND y OR que se encuentran fuera de paréntesis.
Siempre debe utilizar paréntesis en expresiones complejas para garantizar que se evalúe la expresión correctamente. Por ejemplo:
WHERE (SEATS EQ 2) AND (SEATS NOT-FROM 3 TO 4)
Esto es específicamente útil al mezclar pruebas literales OR con pruebas lógicas AND u OR:
WHERE (LAST_NAME EQ 'CROSS') OR (LAST_NAME EQ 'JONES')
o
WHERE (CURR_SAL GT 20000) AND (DEPARTMENT IS 'MIS') AND (CURR_JOBCODE CONTAINS 'A')
WHERE (LAST_NAME EQ 'CROSS' OR 'JONES')
Este ejemplo ilustra el impacto del paréntesis en la evaluación de literales OR y lógicas AND.
En esta solicitud, cada expresión encerrada en paréntesis se evalúa primero en el orden en que aparezca. Note que la primer expresión contiene un literal OR. Después el resultado de cada expresión se evalúa utilizando la lógica AND.
Si se excluyen los paréntesis, se evalúa la lógica AND antes del literal OR.
TABLE FILE EMPLOYEE PRINT CURR_SAL BY LAST_NAME WHERE (LAST_NAME EQ 'CROSS' OR 'JONES') AND (CURR_SAL GT 22000) END
La salida es:
LAST_NAME CURR_SAL --------- -------- CROSS $27,062.00
WebFOCUS |