Bonjour à tous,
J'ai une requette dans laquelle je fais une clause WHERE conditionnelle. Ca donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
SELECT table1.*, table2.* 
FROM table1, table2
WHERE 
CASE WHEN (table1.champ1 is NULL OR table1.champ1 = 0) 
THEN table1.champ2=table2.champ2 ELSE table1.champ1=table2.champ1
END
En gros, la jointure se fait sur le champ2 si le champ1 de la table1 est nul (null ou 0) et sinon sur le champ1.

Cette requête prend beaucoup trop de temps à s'éxécuter : 11 s au lieu de 0,1 si j'enlève cette clause.
Alors quelqu'un peut-il m'aider et me dire comment faire ce genre de jointure ou comment l'optimiser ?

Merci par avance.

Julie