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
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..
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.
Partager