Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Subqueries de múltiples
columnas
Después
Después de de completar
completar esta
esta lección
lección podrá
podrá
ser
ser capaz
capaz de:
de:
•• Escribir
Escribir un
un subquery
subquery concon múltiples
múltiples
columna
columna
•• Describir
Describir yy explicar
explicar la
la conducta
conducta dede los
los
subqueries
subqueries cuando
cuando valores
valores nulos
nulos son
son
recuperados.
recuperados.
•• Escribir
Escribir un
un subquery
subquery en en la
la cláusula
cláusula
FROM.
FROM.
Copyright Developware, 2008. All rights reserved.
Subqueries de múltiples columnas
Main query
MANAGER 10
Subquery
SALESMAN 30
MANAGER 10
CLERK 20
El query
principal se con Valores de una fila múltiple y
compara un subquery de múltiples columnas.
SALESMAN 30
MANAGER 10
MANAGER 10
CLERK 20
Copyright Developware, 2008. All rights reserved.
Usando Subqueries de múltiples
columnas
Despliegue
Despliegue elel nombre,
nombre, el el número
número de de
departamento,
departamento, el
el sueldo,
sueldo, yy la
la comisión
comisión de de
cualquier
cualquier empleado
empleado cuyo
cuyo sueldo
sueldo yy comisión
comisión
igualen
igualen ambos
ambos lala comisión
comisión yy el
el sueldo
sueldo de
de
cualquier
cualquier empleado
empleado enen el
el departamento
departamento 3030
.. SQL> SELECT ename, deptno, sal, comm
2 FROM emp
3 WHERE (sal, NVL(comm,-1)) IN
4 (SELECT sal, NVL(comm,-1)
5 FROM emp
6 WHERE deptno = 30);
Pairwise Nonpairwise
SAL COMM SAL COMM
1600 300 1600 300
1250 500 1250 500
1250 1400 1250 1400
2850 2850
1500 0 1500 0
950 950
ENAME
ENAME DEPTNO
DEPTNO SAL
SAL COMM
COMM
----------
---------- ---------
--------- ---------
--------- ---------
---------
JAMES
JAMES 30
30 950
950
WARD
WARD 30
30 1250
1250 500
500
MARTIN
MARTIN 30
30 1250
1250 1400
1400
TURNER
TURNER 30
30 1500
1500 00
ALLEN
ALLEN 30
30 1600
1600 300
300
BLAKE
BLAKE 30
30 2850
2850
66 rows
rows selected.
selected.
Copyright Developware, 2008. All rights reserved.
Subquery no por parejas
SQL> SELECT ename,deptno, sal, comm
2 FROM emp
3 WHERE sal IN (SELECT sal
4 FROM emp
5 WHERE deptno = 30)
6 AND
7 NVL(comm,-1) IN (SELECT NVL(comm,-1)
8 FROM emp
9 WHERE deptno = 30);
ENAME
ENAME SAL
SAL DEPTNO
DEPTNO SALAVG
SALAVG
----------
---------- ---------
--------- ---------
--------- ----------
----------
KING
KING 5000
5000 10
10 2916.6667
2916.6667
JONES
JONES 2975
2975 20
20 2175
2175
SCOTT
SCOTT 3000
3000 20
20 2175
2175
...
...
66 rows
rows selected.
selected.
Creando
Creando subqueries
subqueries de
de múltiples
múltiples
columnas
columnas