Download pdf - 1.2 - Sub Consultas

Transcript
Page 1: 1.2 - Sub Consultas

6/5/2010

1

Sub-Consultas

Cláudio Ratke

Conceitos

Uma subconsulta é uma instrução SELECT que é

incorporada em outra instrução SELECT.

Exemplos

SELECT lista_select

FROM tabela(s)

WHERE operador (SELECT lista_select colunax

FROM tabela);

SELECT lista_select, (SELECT lista_select

xFROM tabela)

FROM tabela(s)

SELECT lista_select

FROM (SELECT xFROM tabela)

WHERE

FROM

FIELD_LIST

HAVING SELECT lista_select, FUNCTION

FROM tabela(s)

GROUP BY lista_select

HAVING FUNCTION (SELECT xFROM tabela)

Page 2: 1.2 - Sub Consultas

6/5/2010

2

Usando Sub-Consulta na cláusula Where

SELECT ename

FROM emp

WHERE sal >

(SELECT sal

FROM emp

WHERE empno=7566);

2975

salário do funcionário 7566. A consulta externa

obtém o resultado da consulta interna e o

utiliza para exibir todos os funcionários que

recebem mais que essa quantia

Usando Sub-Consultas na cláusula Where

SELECT ename, job

FROM emp

WHERE job =

(SELECT job

FROM emp

WHERE empno = 7369)

AND sal >

(SELECT sal

FROM emp

WHERE empno = 7876);

CLERK

1100

Usando Sub-Consulta na cláusula Where

SELECT ename, job, sal

FROM emp

WHERE sal =

(SELECT MIN(sal)

FROM emp);

800

Page 3: 1.2 - Sub Consultas

6/5/2010

3

Usando Sub-Consulta na cláusula Where

SELECT ename, sal

FROM emp

WHERE (job, deptno) in (SELECT job, deptno

FROM emp

WHERE ename = 'ALLEN')

Usando Sub-Consulta na cláusula From

SELECT a.ename, a.sal, a.deptno

FROM (SELECT * FROM emp) a

SELECT a.ename, a.sal, a.deptno, b.salavg

FROM emp a

JOIN (SELECT deptno, avg(sal) salavg

FROM emp

GROUP BY deptno) b

USING (deptno)

WHERE a.sal > b.salavg;

Usando Sub-Consulta - cláusula Having

SELECT deptno, MIN(sal)

FROM emp

GROUP BY deptno

HAVING MIN(sal) >

(SELECT MIN(sal)

FROM emp

WHERE deptno = 20);


Recommended