SQL em Oracle > DML > SELECT > A cláusula WHERE
A cláusula WHERE tl_logo2.jpg

A cláusula WHERE corresponde ao operador restrição da Algebra Relacional. Contém uma condição que os registos têm de satisfazer para que sejam visualizados.

A condição tem a seguinte estrutura:

Nome de uma coluna Operadores de comparação ou
Operadores de SQL
Nome de uma coluna ou 
constante ou
lista de valores

Ex: Listar empregados (nome e cargo) cujo salário seja superior ou igual a 3000:

SELECT ename, job, sal
FROM emp
WHERE sal >= 3000;
ENAME      JOB             SAL
---------- --------- ---------
SCOTT      ANALYST        3000
KING       PRESIDENT      5000
FORD       ANALYST        3000

3 rows selected.

O NOT pode ser utilizador para negar a condição. Por exemplo listar nome e cargo de empregado cujo salário seja inferior a 3000:

SELECT ename, job, sal
FROM emp
WHERE NOT sal >= 3000;
ENAME      JOB             SAL
---------- --------- ---------
SMITH      CLERK           800
ALLEN      SALESMAN       1600
WARD       SALESMAN       1250
JONES      MANAGER        2975
MARTIN     SALESMAN       1250
BLAKE      MANAGER        2850
CLARK      MANAGER        2450
TURNER     SALESMAN       1500
ADAMS      CLERK          1100
JAMES      CLERK           950
MILLER     CLERK          1300

11 rows selected. 

Ex: Encontrar os departamentos cujo número de departamento é maior que 20:

SELECT dname, deptno
FROM dept
WHERE deptno > 20;
DNAME             DEPTNO
-------------- ---------
SALES                 30
OPERATIONS            40 

2 rows selected.

note04.gif

Ex: Listar empregados cuja função seja CLERCK:

SELECT ename, empno, job, deptno
FROM emp
WHERE job = 'CLERK';
ENAME          EMPNO JOB          DEPTNO
---------- --------- --------- ---------
SMITH           7369 CLERK            20
ADAMS           7876 CLERK            20
JAMES           7900 CLERK            30
MILLER          7934 CLERK            10

4 rows selected.

Ex: Listar empregados que tenham sido admintidos na empresa em data posterior a 09 de Junho de 1981:

SELECT ename, job, hiredate
FROM emp
WHERE hiredate > to_date('1981-07-09','yyyy-mm-dd');
ENAME      JOB       HIREDATE
---------- --------- --------
MARTIN     SALESMAN  81.09.28
SCOTT      ANALYST   82.12.09
KING       PRESIDENT 81.11.17
TURNER     SALESMAN  81.09.08
ADAMS      CLERK     83.01.12
JAMES      CLERK     81.12.03
FORD       ANALYST   81.12.03
MILLER     CLERK     82.01.23

8 rows selected.

note04.gif

Podem ser comparadas colunas da mesma linha. O comando abaixo lista os empregados cuja comissão é superior ao salário:

SELECT ename, sal, comm
FROM emp
WHERE comm > sal;
ENAME            SAL      COMM
---------- --------- ---------
MARTIN          1250      1400

1 row selected.

bthome.gifTopo


Realizado por Turtle Learning ®. Última alteração em 2011-02-26