Bonjour,
J'ai une procédure stockée qui prend 3 varchar comme parametres, mais ils peuvent être égaux à "" donc je fais ma clause where en fonction de mes varchar. Si le varchar est vide je ne fais pas de like.
Et cela pour tous les autres cas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 ALTER PROCEDURE [dbo].[Consult_SearchAvecCodeCltDescSGR] (@CodeCltContient varchar(50),@DescContient varchar(50),@SGRMagContient varchar(50),@Env varchar(50)) AS IF ( @CodeCltContient != '' AND @DescContient = '' AND @SGRMagContient = '') SELECT DISTINCT KNKNDK,KNKNMN,LAPRTN,LALADI FROM KNDF INNER JOIN KLAF ON KLAF.LAKNDI = KNDF.KNKNDI WHERE KNKNDK LIKE '%' + @CodeCltContient + '%' AND KNDF.ENV_CD = @Env ORDER BY KNKNDK ELSE IF ( @CodeCltContient != '' AND @DescContient != '' AND @SGRMagContient = '') SELECT DISTINCT KNKNDK,KNKNMN,LAPRTN,LALADI FROM KNDF INNER JOIN KLAF ON KLAF.LAKNDI = KNDF.KNKNDI WHERE KNKNDK LIKE '%' + @CodeCltContient + '%' AND KNKNMN LIKE '%' + @DescContient + '%' AND KNDF.ENV_CD = @Env ORDER BY KNKNDK
Y a t-il un façon plus optimisée d'écrire cette procédure?
Merci d'avance
Partager