Microsoft SQL Server
Subconsultas
Buscar..
Subconsultas
Una subconsulta es una consulta dentro de otra consulta SQL. Una subconsulta también se denomina consulta interna o selección interna y la declaración que contiene una subconsulta se denomina consulta externa o selección externa.
Nota
- Las subconsultas deben estar entre paréntesis,
- Un ORDER BY no se puede utilizar en una subconsulta.
- El tipo de imagen, como BLOB, matriz, tipos de datos de texto, no están permitidos en subconsultas.
Las subconsultas se pueden utilizar con declaraciones de selección, inserción, actualización y eliminación dentro de dónde, desde, cláusula de selección junto con IN, operadores de comparación, etc.
Tenemos una tabla llamada ITCompanyInNepal en la que realizaremos consultas para mostrar ejemplos de subconsultas:
Ejemplos: Subconsultas con declaración selecta
con el operador In y la cláusula where :
SELECT *
FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA');
con operador de comparación y donde la cláusula
SELECT *
FROM ITCompanyInNepal
WHERE NumberOfEmployee < (SELECT AVG(NumberOfEmployee)
FROM ITCompanyInNepal
)
con cláusula selecta
SELECT CompanyName,
CompanyAddress,
Headquarter,
(Select SUM(NumberOfEmployee)
FROM ITCompanyInNepal
Where Headquarter = 'USA') AS TotalEmployeeHiredByUSAInKathmandu
FROM ITCompanyInNepal
WHERE CompanyAddress = 'Kathmandu' AND Headquarter = 'USA'
Subconsultas con declaración de inserción
Tenemos que insertar datos de la tabla IndianCompany en ITCompanyInNepal. La tabla para IndianCompany se muestra a continuación:
INSERT INTO ITCompanyInNepal
SELECT *
FROM IndianCompany
Subconsultas con estado de actualización
Supongamos que todas las compañías cuya sede central es EE. UU. Decidieron despedir a 50 empleados de todas las compaías de Nepal basadas en EE. UU. Debido a algún cambio en la política de las compaías estadounidenses.
UPDATE ITCompanyInNepal
SET NumberOfEmployee = NumberOfEmployee - 50
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA')
Subconsultas con declaración de borrado
Supongamos que todas las empresas cuya sede central es Dinamarca decidieron cerrar sus empresas de Nepal.
DELETE FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'Denmark')