Microsoft SQL Server
Sous-requêtes
Recherche…
Sous-requêtes
Une sous-requête est une requête dans une autre requête SQL. Une sous-requête est également appelée requête interne ou sélection interne et l'instruction contenant une sous-requête est appelée requête externe ou sélection externe.
Remarque
- Les sous-requêtes doivent être placées entre parenthèses,
- Un ORDER BY ne peut pas être utilisé dans une sous-requête.
- Le type d'image, par exemple BLOB, tableau, types de données texte, n'est pas autorisé dans les sous-requêtes.
Les sous-requêtes peuvent être utilisées avec les instructions select, insert, update et delete dans la clause where, from, select avec IN, les opérateurs de comparaison, etc.
Nous avons une table nommée ITCompanyInNepal sur laquelle nous allons effectuer des requêtes pour montrer des exemples de sous-requêtes:
Exemples: SubQueries With Select Statement
avec l'opérateur In et la clause where :
SELECT *
FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA');
avec opérateur de comparaison et où clause
SELECT *
FROM ITCompanyInNepal
WHERE NumberOfEmployee < (SELECT AVG(NumberOfEmployee)
FROM ITCompanyInNepal
)
avec la clause select
SELECT CompanyName,
CompanyAddress,
Headquarter,
(Select SUM(NumberOfEmployee)
FROM ITCompanyInNepal
Where Headquarter = 'USA') AS TotalEmployeeHiredByUSAInKathmandu
FROM ITCompanyInNepal
WHERE CompanyAddress = 'Kathmandu' AND Headquarter = 'USA'
Sous-requêtes avec instruction insert
Nous devons insérer des données de la table IndianCompany dans ITCompanyInNepal. Le tableau pour IndianCompany est présenté ci-dessous:
INSERT INTO ITCompanyInNepal
SELECT *
FROM IndianCompany
Sous-requêtes avec instruction de mise à jour
Supposons que toutes les entreprises dont le siège est aux États-Unis ont décidé de licencier 50 employés de toutes les sociétés américaines du Népal en raison d'un changement de politique des sociétés américaines.
UPDATE ITCompanyInNepal
SET NumberOfEmployee = NumberOfEmployee - 50
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'USA')
Sous-requêtes avec instruction de suppression
Supposons que toutes les entreprises dont le siège est au Danemark ont décidé de fermer leurs entreprises au Népal.
DELETE FROM ITCompanyInNepal
WHERE Headquarter IN (SELECT Headquarter
FROM ITCompanyInNepal
WHERE Headquarter = 'Denmark')