|
|
|
|
|
- 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
Opérations ensemblistes SQL : UNION, UNION ALL et INTERSECT
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).
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. 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.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|