Bonjour,

Soit deux ensembles 1 et 2. Je souhaite avoir l'intersection de ces ensembles sur l'ensemble 1 n'est pas vide et uniquement l'ensemble 2 si l'ensemble 1 est vide.

En gros :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
(select 'A' val from dual)
MON OPERATEUR
(select 'A' val from dual
union all
select 'B' val from dual)
doit renvoyer A

et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
(select null val from dual)
MON OPERATEUR
(select 'A' val from dual
union all
select 'B' val from dual)
doit renvoyer
A
B

Si vous avez des idées je suis preneur.

La base finale est une base Oracle.

PS : INTERSECT n'est pas la solution.