Upload
jhonatantrel
View
297
Download
1
Embed Size (px)
Citation preview
SUBCONSULTAS DE VARIAS FILAS Y SU OPERADOR DE
SU CONJUNTO
Jhonatan Emilio Trelles corrales
Juan José Santisteban Trelles
Una subconsulta es una instrucción SELECT anidada dentro de una instrucciónINSERT...INTO, DELETE, o UPDATE o dentro de otra subconsulta.
Puede utilizar tres formas de sintaxis para crear una subconsulta: comparación [ANY | ALL | SOME] (instrucción SQL) expresión [NOT] IN (instrucción SQL) [NOT] EXISTS (instrucción SQL).
DEFINICION
SUBCONSULTAS
Se puede poner una sub consulta en un número de cláusulas SQL, incluyendo:• La cláusula WHERE• La cláusula HAVING• La cláusula FROMEn la sintaxis:Operador incluye una condición de comparación como >, = o IN
Una sub consulta en una sentencia SELECT que es incrustada en otra cláusula de otra sentencia SELECT. Se pueden construir sentencias poderosas deforma simple con el uso de sub consultas. Esto puede ser muy utilizado cuandose necesiten seleccionar filas de una tabla con condiciones que dependan dedatos de la misma tabla.
SUBCONSULTAS CON OPERADOR
ADEMÁS
EJEMPLO Subconsultas con varias
filas y su operador like
select a.fecha ,a.texto , b.cadenafrom tabla_A a , tabla_B b
where upper(a.texto) like '%'||b.cadena||'%'
and b.cadena in (select cadena from tabla_B where id='1001')and a.fecha>'01/01/08'
order by a.fecha;
EJEMPLO
Instrucción SQL
Es una instrucción SELECT, que sigue el mismo formato y reglas que cualquier otra instrucción SELECT. Debe ir entre paréntesis.
SELECT * FROM Productos WHERE PrecioUnidad > ANY
(SELECT PrecioUnidad FROM DetallePedido WHERE Descuento >= 0 .25);
EJEMPLOS
A.- Lista con el nombre, cargo y salario de todos los agentes de ventas cuyo salario es mayor
que el de todos los jefes y directores
SELECT Apellidos, Nombre, Cargo, Salario FROM Empleados
WHERE Cargo LIKE "Agente Ven*" AND Salario > ALL (SELECT Salario FROM
Empleados WHERE (Cargo LIKE "*Jefe*") OR (Cargo LIKE
"*Director*"));
B.- lista con el nombre y el precio unitario de todos los productos con el mismo precio
que el almíbar anisado
SELECT DISTINCTROW NombreProducto, Precio_Unidad FROM Productos
WHERE (Precio_Unidad = (SELECT Precio_Unidad FROM Productos WHERE
Nombre_Producto = "Almíbar anisado");
C.- Recupera el Código del Producto y la Cantidad pedida de la tabla pedidos, extrayendo el nombre
delproducto de la tabla de productos.
SELECT DISTINCTROW Pedidos.Id_Producto, Pedidos. Cantidad,
(SELECT DISTINCTROW Productos.Nombre FROM Productos WHERE
Productos.Id_Producto = Pedidos.Id_Producto) AS ElProducto FROM
Pedidos WHERE Pedidos.Cantidad > 150 ORDER BY Pedidos.Id_Producto;
GRACIAS
POR SU
ATENCIÓN