DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Editeurs / Editeur de requêtes / SQL
  • Présentation
  • Sous-requête en tant que condition de sélection
  • Sous-requête en tant que fichier de la requête principale
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
Une sous-requête est une requête dont le résultat est utilisé par une autre requête.
Par exemple, vous voulez sélectionner les commandes dont le montant est supérieur au montant moyen des commandes. Le montant moyen des commandes n'est pas connu directement. Ce montant moyen va être retourné par une autre requête (appelée ici sous-requête).
Une sous-requête peut être utilisée :
  • soit en tant que condition de sélection.
  • soit en tant que fichier de la requête principale.
Limites :
  • L'instruction ORDER BY est interdite dans les sous requêtes.
  • Les sous-requêtes ne peuvent pas être réalisées avec l'éditeur de requêtes.
Sous-requête en tant que condition de sélection
Une sous-requête peut être utilisée en tant que condition de sélection.
Les syntaxes autorisées sont les suivantes :
SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
WHERE Rubrique1 Opérateur (SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...])

SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
WHERE [NOT] EXISTS (SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...])
Dans cette syntaxe, <Opérateur> peut correspondre :
  • soit à ALL, ANY (ou SOME), IN ou NOT IN
    • ALL : compare la valeur sélectionnée par la requête principale à toutes les valeurs sélectionnées dans la sous-requête.
    • NOT IN : vérifie si la valeur sélectionnée par la requête principale n'appartient pas à la liste de valeurs sélectionnées dans la sous-requête.
    • IN : vérifie si la valeur sélectionnée par la requête principale appartient à la liste de valeurs sélectionnées dans la sous-requête.
    • ANY (ou SOME) : compare la valeur sélectionnée par la requête principale à n'importe quelle valeur sélectionnée dans la sous-requête.
    • ALL : compare la valeur sélectionnée par la requête principale à toutes les valeurs sélectionnées dans la sous-requête.
  • soit à un opérateur de comparaison (=, <, <=, >, >=, <> ou !=).
  • soit à la combinaison de ALL, ANY (ou SOME) et d'un opérateur de comparaison (=, <, <=, >, >=, <> ou !=).
    • ALL : compare la valeur sélectionnée par la requête principale à toutes les valeurs sélectionnées dans la sous-requête.
    • ANY (ou SOME) : compare la valeur sélectionnée par la requête principale à n'importe quelle valeur sélectionnée dans la sous-requête.
    • ALL : compare la valeur sélectionnée par la requête principale à toutes les valeurs sélectionnées dans la sous-requête.
Exemple : Le code SQL suivant permet de sélectionner le numéro des commandes dont le montant total est supérieur au montant moyen de l'ensemble des commandes :
SELECT NumCommande
FROM COMMANDE
WHERE Montant > (SELECT AVG(Montant)
FROM COMMANDE)
Sous-requête en tant que fichier de la requête principale
Une sous-requête peut être utilisée en tant que fichier de la requête principale.
La syntaxe autorisée est la suivante :
SELECT Rubrique1 [, Rubrique2]
FROM (SELECT Rubrique1 FROM Fichier1 [WHERE ...])
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale