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

Iniciar información de la interfaz de programación de uso general.
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;
Finalizar la información de la interfaz de programación de uso general.

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.

Iniciar información de la interfaz de programación de uso general.
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);
Finalizar la información de la interfaz de programación de uso general.

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.

Iniciar información de la interfaz de programación de uso general.
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.

Finalizar la información de la interfaz de programación de uso general.