Operadores lógicos |
Os operadores AND e OR podem ser utilizados para construir expressões lógicas compostas. AND será True quando ambas condições forem True. OR será True quando uma das condições for True. Ex: listar os empregados de escritório que ganham entre 1000 e 2000 e o seu JOB é CLERK:
SELECT empno, ename, job, sal FROM emp WHERE sal BETWEEN 1000 AND 2000 AND job = 'CLERK'; |
EMPNO ENAME JOB SAL --------- ---------- --------- --------- 7876 ADAMS CLERK 1100 7934 MILLER CLERK 1300 2 rows selected. |
Ex: listar todos os empregados que, ou ganham entre 1000 e 2000 ou são 'CLERK':
SELECT ename, job, sal FROM emp WHERE sal BETWEEN 1000 AND 2000 OR job = 'CLERK'; |
ENAME JOB SAL ---------- --------- --------- SMITH CLERK 800 ALLEN SALESMAN 1600 WARD SALESMAN 1250 MARTIN SALESMAN 1250 TURNER SALESMAN 1500 ADAMS CLERK 1100 JAMES CLERK 950 MILLER CLERK 1300 8 rows selected. |
Como o operador AND tem prioridade mais elevada que OR, a instrução de SQL seguinte devolve todos os chefes com salário acima de 1500 e todos os vendedores:
SELECT empno, ename, job, sal, deptno FROM emp WHERE sal > 1500 AND job = 'MANAGER' OR job = 'SALESMAN'; |
EMPNO ENAME JOB SAL DEPTNO --------- ---------- --------- --------- --------- 7499 ALLEN SALESMAN 1600 30 7521 WARD SALESMAN 1250 30 7566 JONES MANAGER 2975 20 7654 MARTIN SALESMAN 1250 30 7698 BLAKE MANAGER 2850 30 7782 CLARK MANAGER 2450 10 7844 TURNER SALESMAN 1500 30 7798 CHARLES MANAGER 5000 10 8 rows selected. |
Se pretendermos os chefes e vendedores que ganham acima de 1500 necessitariamos de utilizar parentesis para alterar a prioridade:
SELECT empno, ename, job, sal, deptno FROM emp WHERE sal > 1500 AND (job ='MANAGER' OR job = 'SALESMAN'); |
EMPNO ENAME JOB SAL DEPTNO --------- ---------- --------- --------- --------- 7499 ALLEN SALESMAN 1600 30 7566 JONES MANAGER 2975 20 7698 BLAKE MANAGER 2850 30 7782 CLARK MANAGER 2450 10 7798 5CHARLES MANAGER 5000 10 5 rows selected. |
Realizado por Turtle Learning ®. Última alteração em 2011-02-26