Bonjour,
Je ne sais pas si mon titre est très clair amis je vais m'expliquer au mieux.
pour une PS, j'ai un paramètre @CodeAction (correspondant à une valeur d'un champs de la table Action) qui peut arriver NULL.
Je souhaite :
- si le paramètre est NULL, ne pas le prendre en compte
- sinon faire le croisement.

L'idée est donc d'utiliser

Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE Action.CodeAction = ISNULL(@CodeAction, Action.CodeAction)
Dans ce cas il fait ce que je demande.
Le problème est que cette table Action est très lourde et le temps de traitement en souffre.

la solution rustine : décomposer le select, mais ce n'est vraiemt pas bon à maintenir..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
IF @CodeAction IS NOT NULL
SELECT ...
FROM ...
WHERE act.CodeAction = @CodeAction
 
ELSE
SELECT ...
FROM ...
WHERE <rien>
Niveau maintenance ça fait vraiment dégueulasse mais au moins c'est beaucoup plus rapide.

Merci pour vos conseils.