Bonjour,
j'ai réalisé une requête, je tiens à dire que je suis loin d'être un expert, contenant un UNION ALL.
Voici ce que m'a requête est censé faire :
Dans une table je souhaite récupérer les 10 premiers lignes correspondant à un type (valeur d'un champ) ainsi que les 10 premières lignes correspondant à un autre type, voici la requête que j'ai réalisé :
J'ai simplifié ma requête afin de mettre en lumière le UNION ALL qui me pose problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 select * from TABLE_A a, TABLE_B b where a.CATEGORY_TYPE = 1 and a.TERMINAL IS NOT NULL and a.CATEGORY <> b.VALEUR and ROWNUM <= 10 UNION ALL select * from TABLE_A a, TABLE_B b where a.CATEGORY_TYPE = 2 and a.TERMINAL IS NOT NULL and a.CATEGORY <> b.VALEUR and ROWNUM <= 10
Cependant après analyse je m'en rend compte que cette requête est bien trop coûteuse, et je voudrais savoir s'il y a une manière de réaliser la même chose avec des fonctions oracle. Je voudrais pouvoir me passer de UNION ALL.
N'hésitez pas à me donner des pistes et/ou à me dire s'il vous faut plus d'informations.
Mosco
Partager