Múltiples condiciones
Puede utilizar los operadores AND y OR para combinar predicados y buscar datos, basándose en varias condiciones.
Utilice el operador AND para especificar que una búsqueda debe cumplir ambas condiciones. Utilice el operador OR para especificar que la búsqueda debe cumplir como mínimo una de las condiciones.
ejemplos
- Ejemplo
- Esta consulta recupera el número de empleado, la fecha de contratación y el salario para cada empleado que fue contratado antes de 1998 y gana un salario de menos de 35.000 $ al año:
SELECT EMPNO, HIREDATE, SALARY FROM EMP WHERE HIREDATE < '1998-01-01' AND SALARY < 35000; - Ejemplo
- Esta consulta recupera el número de empleado, la fecha de contratación y el salario para cada empleado que fue contratado antes de 1998, o gana un salario de menos de 35.000 $ por año o ambos:
SELECT EMPNO, HIREDATE, SALARY FROM EMP WHERE HIREDATE < '1998-01-01' OR SALARY < 35000;
Ejemplos: Cómo utilizar paréntesis con AND y OR
Si utiliza más de dos condiciones con los operadores AND u OR, puede utilizar paréntesis para especificar el orden en el que desea que Db2 evalúe las condiciones de búsqueda. Si mueve los paréntesis, el significado de la cláusula WHERE puede cambiar significativamente.
- Ejemplo
- Esta consulta recupera la fila de cada empleado que cumple
como mínimo una de las condiciones siguientes:
- La fecha de contratación del empleado es anterior a 1998 y el salario es inferior a 40.000 $.
- El nivel de formación del empleado es inferior a 18.
SELECT EMPNO FROM EMP WHERE (HIREDATE < '1998-01-01' AND SALARY < 40000) OR (EDL < 18); - Ejemplo
- Esta consulta recupera la fila de cada empleado que cumple
ambas condiciones siguientes:
- La fecha de contratación del empleado es anterior a 1998.
- El salario del empleado es inferior a 40.000 $ o el nivel de formación del empleado es inferior a 18.
SELECT EMPNO FROM EMP WHERE HIREDATE < '1998-01-01' AND (SALARY < 40000 OR EDL < 18); - Ejemplo
- Esta consulta recupera el número de empleado de cada empleado que
cumple una de las condiciones siguientes:
- Contratado antes de 1998 y salario es inferior a 40.000 $.
- Contratado después del 1 de enero de 1998, y el salario es superior a 40.000 $.
SELECT EMPNO FROM EMP WHERE (HIREDATE < '1998-01-01' AND SALARY < 40000) OR (HIREDATE> '1998-01-01' AND SALARY> 40000);
Ejemplos: Cómo utilizar NOT con AND y OR
Cuando se utiliza NOT con AND y OR, la ubicación de los paréntesis es importante.
- Ejemplo
- La siguiente consulta recupera el número de empleado, el nivel de
formación y la ocupación de cada empleado que cumple ambas
condiciones siguientes:
- El salario del empleado es inferior a 50.000 $.
- El nivel de formación del empleado es inferior a 18.
SELECT EMPNO, EDL, JOB FROM EMP WHERE NOT (SALARY>= 50000) AND (EDL < 18);En esta consulta, el operador NOT sólo afecta a la primera condición de búsqueda (SALARY> = 50000).
- Ejemplo
- La consulta siguiente recupera el número de empleado, el nivel de
formación y la ocupación de cada empleado que cumple como mínimo una de
las condiciones siguientes:
- El salario del empleado es inferior o igual a 50.000 dólares.
- El nivel de formación del empleado es inferior o igual a 18.
SELECT EMPNO, EDL, JOB FROM EMP WHERE NOT (SALARY> 50000 AND EDL> 18);Para negar un conjunto de predicados, encierre todo el conjunto entre paréntesis y preceda el conjunto con la palabra clave NOT.