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é :

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
J'ai simplifié ma requête afin de mettre en lumière le UNION ALL qui me pose problème.

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