Comment représentez-vous les sous-requêtes dans les clauses SELECT et WHERE?Sous-requêtes
0
A
Répondre
9
Les déclarations qui contiennent les sous-requêtes prennent généralement l'un de ces formats:
- OU expression [NOT] IN (sous-requête)
- where expression [TOUT | ALL] (sous-requête)
- OU [NOT] EXISTS (sous-requête)
Subquery Fundamentals(SQL Server 2008 en ligne, Janvier 2009)
3
Vous pouvez utiliser les sous-requêtes dans les clauses SELECT et WHERE comme celui-ci :
select
c.customerid,
(
select sum(i.amount) as totalspent
from item i
where i.customerid = c.customerid
) as totalspent
from customer c
where exists
(
select *
from purchase p
where p.customerid = c.customerid
)
1
vous avez obtenu quelques bons anwsers, mais essayez de voir si vous pouvez modifier votre logique telle que la sous-requête a lieu dans la clause, de sorte qu'il est exécuté qu'une seule fois au lieu d'une fois pour chaque ligne renvoyée par la requête principale.
Les sous-requêtes aspirent vraiment les performances d'un système.
Veuillez noter que de nombreuses sous-requêtes sont mieux représentées comme une jointure à une table dérivée (bien que l'optimiseur soit de mieux en mieux traduit). –