Sous-requêtes

Vous pouvez utiliser une sous-requête dans des prédicats quantifiés et dans le prédicat EXISTS ou le prédicat IN. Une sous-requête ne doit désigner qu'un seul élément dans la clause SELECT.

Lorsqu'une expression de chemin d'accès apparaît dans une sous-requête, la variable d'identification de l'expression de chemin d'accès doit être définie dans la sous-requête, dans l'une des sous-requêtes contenantes, ou dans la requête externe. Une sous-requête scalaire est une sous-requête qui renvoie une valeur unique. Ce type de sous-requête est utilisable dans un prédicat de base et dans la clause SELECT d'une requête dynamique.

Exemple : Sous-requêtes

SELECT OBJECT(e) FROM EmpBean e 
WHERE e.salary > ( SELECT  AVG(e1.salary) FROM  EmpBean e1)

La requête précédente renvoie les employés dont le salaire est supérieur au salaire moyen de tous les employés.

SELECT  OBJECT(e) FROM EmpBean e WHERE  e.salary > 
( SELECT AVG(e1.salary) FROM  IN  (e.dept.emps) e1  ) 

La requête précédente renvoie les employés dont le salaire est supérieur au salaire moyen de leur division.

SELECT  OBJECT(e) FROM EmpBean e WHERE e.salary = 
( SELECT MAX(e1.salary) FROM IN (e.dept.emps) e1  )

La requête précédente renvoie les employés ayant le meilleur salaire de leur division.

	SELECT  OBJECT(e) FROM EmpBean e
WHERE e.salary > ( SELECT AVG(e.salary) FROM EmpBean e1 
WHERE YEAR(e1.hireDate) =  YEAR(e.hireDate)  )

La requête précédente renvoie les employés dont le salaire est supérieur au salaire moyen des employés embauchés la même année qu'eux.


Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cque_subquery
Nom du fichier : cque_subquery.html