DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / Editeurs / Editeur de requêtes / SQL
  • Présentation
  • Opérateurs UNION / UNION ALL
  • Présentation
  • UNION
  • UNION ALL
  • Union de requêtes paramétrées : gestion des paramètres
  • Opérateur INTERSECT
  • Présentation
  • INTERSECT
  • Union de requêtes paramétrées : gestion des paramètres
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
Le SQL propose la possibilité de réaliser des opérations ensemblistes sur des groupes de fichiers :
Opérateurs UNION / UNION ALL

Présentation

Les requêtes composées permettent de combiner des requêtes de sélection (instruction SELECT). Chaque requête de sélection doit porter sur des fichiers de structure identique.
Pour réaliser une requête composée, il est possible d'utiliser :
  • l'opérateur UNION.
  • l'opérateur UNION ALL.
Exemple : Réaliser une requête contenant les clients dont le nom commence par la lettre 'A' et les prospects habitant Londres. Pour réaliser cette requête, il est nécessaire de combiner les deux requêtes suivantes :
  • sélection des clients dont le nom commence par la lettre 'A'.
  • sélection des prospects habitant Londres.
Les enregistrements communs aux deux fichiers peuvent :
  • soit apparaître une seule fois dans le résultat de la requête (opérateur UNION).
  • soit apparaître deux fois dans le résultat de la requête (opérateur UNION ALL).
Attention : Lors de l'union de requêtes paramétrées, une gestion des paramètres spécifique est nécessaire.

UNION

L'opérateur UNION permet de combiner des requêtes de sélection portant sur des fichiers de structure identique. Les enregistrements communs apparaîtront une seule fois dans le résultat de la requête.
Pour réaliser une requête composée avec l'opérateur UNION, chaque requête de sélection doit utiliser le même nombre de rubriques.
Le libellé des rubriques résultat correspond au libellé des rubriques de la première requête de sélection.
Format d'utilisation :
SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...]
UNION
SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...]
Exemple : Le code SQL suivant permet de sélectionner le nom des clients dont le nom commence par la lettre 'A' et le nom des prospects habitant Londres. Les personnes qui sont à la fois client et prospect, dont le nom commence par la lettre 'A' et habitant Londres n'apparaîtront qu'une seule fois dans le résultat de la requête.
SELECT NomClient
FROM CLIENT
WHERE NomClient LIKE 'A%'
UNION
SELECT NomProspect
FROM PROSPECT
WHERE VilleClient = 'Londres'

UNION ALL

L'opérateur UNION ALL permet de combiner des requêtes de sélection portant sur des fichiers de structure identique. Les enregistrements communs apparaîtront plusieurs fois dans le résultat de la requête.
Pour réaliser une requête composée avec l'opérateur UNION ALL, chaque requête de sélection doit utiliser le même nombre de rubriques.
Le libellé des rubriques résultat correspond au libellé des rubriques de la première requête de sélection.
Format d'utilisation :
SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...]
UNION ALL
SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...]
Exemple : Le code SQL suivant permet de sélectionner le nom des clients dont le nom commence par la lettre 'A' et le nom des prospects habitant Londres. Les personnes qui sont à la fois client et prospect, dont le nom commence par la lettre 'A' et habitant Londres apparaîtront deux fois dans le résultat de la requête.
SELECT NomClient
FROM CLIENT
WHERE NomClient LIKE 'A%'
UNION ALL
SELECT NomProspect
FROM PROSPECT
WHERE VilleClient = 'Londres'

Union de requêtes paramétrées : gestion des paramètres

Lors de la création d'une requête composée (UNION), chaque requête possède ses propres paramètres. Par exemple :
  • maRequete1.sparam1
  • maRequete2.sparam2
  • maRequeteUnion est la requête UNION de marequete1 et maRequete2.
A l'exécution, la requête Union et les requêtes ayant servi à construire la requête Union sont distinctes.
Ainsi, dans notre exemple, "maRequete1.sparam1" initialise le paramètre pour la requête maRequete1 mais pas le paramètre sParam1 de la requête Union.
Pour obtenir le bon résultat il faut donc obligatoirement initialiser maRequeteUnion.sparam1 pour initialiser le paramètre 1 de la requête Union.
Opérateur INTERSECT

Présentation

L'opérateur INTERSECT permet également de combiner des requêtes de sélection (instruction SELECT). Chaque requête de sélection doit porter sur des fichiers de structure identique. Dans le cas d'une intersection, le résultat correspond uniquement aux enregistrements communs.
Exemple : Réaliser une requête contenant les clients dont le nom commence par la lettre 'A' et les prospects habitant Londres. Pour réaliser cette requête, il est nécessaire de réaliser l'intersection des deux requêtes suivantes :
  • sélection des clients dont le nom commence par la lettre 'A'.
  • sélection des prospects habitant Londres.
Attention :
  • Lors de l'intersection de requêtes paramétrées, une gestion des paramètres spécifique est nécessaire.
  • L'opérateur INTERSECT est prioritaire sur l'opérateur UNION/UNION ALL.
  • Les requêtes de type INTERSECT ne sont pas disponibles sous l'éditeur de requêtes.
  • La rétro-analyse des requêtes INTERSECT ne sont pas disponibles.
  • Les requêtes de type INTERSECT ne sont pas utilisables avec les Connecteurs Natifs.

INTERSECT

L'opérateur INTERSECT permet de combiner des requêtes de sélection portant sur des fichiers de structure identique. Les enregistrements communs apparaîtront une seule fois dans le résultat de la requête.
Pour réaliser une requête composée avec l'opérateur INTERSECT, chaque requête de sélection doit utiliser le même nombre de rubriques.
Le libellé des rubriques résultat correspond au libellé des rubriques de la première requête de sélection.
Format d'utilisation :
SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...]
INTERSECT
SELECT Rubrique1 [, Rubrique2]
FROM Fichier1 [, Fichier2]
[WHERE ...]
Exemple : Le code SQL suivant permet de sélectionner le nom des clients dont le nom commence par la lettre 'A' et le nom des prospects habitant Londres. Les personnes qui sont à la fois client et prospect, dont le nom commence par la lettre 'A' et habitant Londres n'apparaîtront qu'une seule fois dans le résultat de la requête.
SELECT NomClient
FROM CLIENT
WHERE NomClient LIKE 'A%'
INTERSECT
SELECT NomProspect
FROM PROSPECT
WHERE VilleClient = 'Londres'

Union de requêtes paramétrées : gestion des paramètres

Lors de la création d'une requête composée via INTERSECT, chaque requête possède ses propres paramètres. Par exemple :
  • maRequete1.sparam1
  • maRequete2.sparam2
  • maRequeteUnion est la requête INTERSECT de marequete1 et maRequete2.
A l'exécution, la requête Intersect et les requêtes ayant servi à construire la requête Intersect sont distinctes.
Ainsi, dans notre exemple, "maRequete1.sparam1" initialise le paramètre pour la requête maRequete1 mais pas le paramètre sParam1 de la requête Intersect.
Pour obtenir le bon résultat il faut donc obligatoirement initialiser maRequeteUnion.sparam1 pour initialiser le paramètre 1 de la requête Intersect.
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