Sous-requête corrélée dans SQL Server

Cet article explique les sous-requêtes non corrélées et corrélées dans SQL Server (Transact-SQL) avec exemple.

Sous-requête corrélée

Une sous-requête corrélée est la sous-requête dont la valeur dépend de la requête externe. La sous-requête corrélée est exécutée à plusieurs reprises, une fois pour chaque ligne sélectionnée par la sous-requête.

Dans la sous-requête corrélée, la sous-requête s’exécutera une fois et remplacera la valeur résultante dans la clause WHERE de la requête externe.

Remarque : Vous ne pouvez pas exécuter de sous-requête corrélée indépendamment de la requête externe.

Créons deux tables pour comprendre la sous-requête corrélée dans SQL Server (T-SQL).

Tableau des produits:

MySQL
1
2
3
4
5
6
7
8
9
10
11
Créer une table ProductsTable
(
ID Clé primaire int,
Nom nvarchar(50 ),
Prix int,
Détails nvarchar(150)
)
Insérer dans les valeurs de table des produits (1, ‘Ordinateur portable’, 30000, ‘Un ordinateur portable pour les utilisateurs à domicile’)
Insérer dans les valeurs de table des produits (2, ‘Machine à laver’, 20000, ‘Machine à chargement frontal de couleur blanche’)
Insérer dans les valeurs de table des produits (3, ‘TV’, 22000, ‘Téléviseur LED HD 32 pouces’)

iv

sous-requête corrélée-produits-table

Ventes Tableau des Enregistrements:

MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
Créer une table SaleRecordTable
(
Id int Identité de clé primaire,
ProductID int,
SoldQuantity int,
SaleDate Date
)
Insert into SaleRecordTable Values (2, 3, ’10-10-2016′)
Insert into SaleRecordTable Values (3, 5, ’10-10-2016′)
Insert into SaleRecordTable Values (2, 2, ’11-10-2016′)
Insert into SaleRecordTable Values (4, 6, ’11-10-2016′)
Insert into SaleRecordTable Values (2, 6, ’12-10-2016′)
Insert into SaleRecordTable Values (4, 6, ’13-10-2016′)

correlated-subquery-sale-record-table

Correlated Subquery dans SQL Server-Example

, la requête récupérera le produit total vendu à partir de la table d’enregistrement des ventes. Dans la sous-requête, les données totales des produits vendus sont récupérées pour chaque ID de produit de la table des produits.

MySQL

1
2
3
4

–correlated subquery
Select Name,
(Select SUM(SoldQuantity) from SaleRecordTable where ProductId = ProductsTable.

Sortie:

sous-requête corrélée et non corrélée-sortie-1

Si vous exécutez la sous-requête indépendamment, vous obtiendrez l’erreur suivante.

sous-requête corrélée et non corrélée-sortie corrélée-2

Sous-requête non corrélée

Une sous-requête non corrélée est une sous-requête indépendante des requêtes externes. Vous pouvez exécuter une sous-requête non corrélée indépendamment de la requête externe.

Non-Correlated Subquery in SQL Server – Example

MySQL

1
2
3
4

–Non correlated query
Select ID, Name, Details
From ProductsTable
Where ID = (Select ProductID from SaleRecordTable Where SaleDate =’10-10-2016′ AND ProductID =2)

Sortie: correlated-subquery-non-output-1

Si vous exécutez la sous-requête indépendamment, cette fois, vous n’obtiendrez aucune erreur. La sortie sera:

sous-requête corrélée et non corrélée-non-output-2

J’espère que cet article vous a aidé à comprendre les sous-requêtes corrélées et non corrélées dans SQL Server. Veuillez poster vos commentaires pour les questions et les commentaires. Merci d’avoir lu.

Share Button
The following two tabs change content below.

  • Bio
  • Latest Posts

My Twitter profileMy Facebook profileMy Google+ profile

Gyanendu Shekhar is a technology enthusiast. He loves to learn new technologies. His area of interest includes Microsoft technologies, Augmented reality, Virtual reality, unity3d and android development.

Mon profil TwitterMon profil FacebookMon profil Google+ div>

Derniers articles de Gyanendu Shekhar (tout voir)

  • Utilisation d’un matériau transparent dans Unity 3D – 8 février 2021
  • Mise en route de la boîte à outils UI: Tutoriel Unity 3D – 30 décembre 2020
  • Utilisation d’événements dans Unity 3D – 2 mai 2020

Related Posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *