Documente Academic
Documente Profesional
Documente Cultură
SUBCONSULTAS
OBJETIVOS
Al completar esta leccin, deben de ser capaces de realizar lo
siguiente:
Describir los tipos de problemas que las subconsultas pueden
resolver.
Definir subconsultas.
Listar los tipos de subconsultas.
Escribir subconsultas sobre filas individuales y sobre mltiples
filas.
SUBCONSULTAS
SELECT select_list
FROM table
WHERE expression operator
(SELECT select_list
FROM table);
TIPOS DE SUBCONSULTAS
Single-row subquery
Clerk
Multiple-row subquery
Clerk
Manager
Multiple-column subquery
Clerk
Manager
7900
7698
SINGLE-ROW SUBQUERIES
Regresan una sola fila.
Usan los operadores de comparacin sobre filas
individuales.
Operador
=
>
>=
<
<=
<>
Descripcin
Igual
Mayor que
Mayor o igual que
Menor que
Menor o igual que
Diferente
CLUSULA HAVING
EN SUBCONSULTAS
SELECT DEPARTMENT_ID, MIN(SALARY)
FROM
EMPLOYEES
GROUP BY DEPARTMENT_ID
HAVING MIN(SALARY) >
(SELECT MIN(SALARY)
FROM EMPLOYEES
WHERE DEPARTMENT_ID = 20)
MULTIPLE-ROW SUBQUERIES
Regresan ms de una fila.
Usan los operadores de comparacin sobre mltiples
filas.
Operador Descripcin
IN
Igual a cualquier elemento de la
lista
ANY
Compara el valor con cada uno
de los valores regresados por la
subconsulta
ALL
Compara el valor con todos los
valores regresados por la
subconsulta
Subconsultas de mltiples
columnas
MULTIPLE-COLUMN SUBQUERIES
MANAGER
10
SALESMAN
MANAGER
CLERK
La Consulta
Principal compara
30
10
20
SUBCONSULTAS DE
MLTIPLES COLUMNAS
Muestra el apellido, el salario, la comisin y el nmero
de departamento de cualquier empleado que coincida
en salario y comisin con cualquier empleado del
departamento 30.
(deben coincidir ambas)
SELECT last_name, salary, commision_pct, department_id
FROM
employees
WHERE (salary, NVL(commission_pct, -1)) IN
(SELECT salary, NVL(commission_pct, -1)
FROM employees
WHERE department_id = 30);
COMPARACIN DE COLUMNAS
Pairwise
SAL
1600
1250
1250
2850
1500
950
Nonpairwise
COMM
300
500
1400
En Parejas
SAL
1600
1250
1250
2850
1500
950
COMM
300
500
1400
0
Dispar
COMPARACIN DISPAR
Muestra el apellido, el salario, la comisin y el nmero de
departamento de cualquier empleado que coincida con el
salario o con la comisin de cualquier empleado del
departamento 30.