J'essaie d'utiliser un cas de sélection afin d'utiliser une condition ou non dans une requête SQL. Mais cela ne fonctionne pas et je peux utiliser une aide d'aide pour résoudre ce problème si possible donc si je passe 0 au paramètre @CategoryId code> Je ne devrais pas filtrer à Tout, sinon je veux filtrer. Peut-il être fait? P> p>
3 Réponses :
Rehrasser votre logique pour supprimer le cas code> Expression: Ceci fonctionne, car lorsque Votre tentative actuelle est un problème courant, découlant de ne pas utiliser de < Code> Case Code> L'expression telle qu'elle est destinée. Le prédicat d'une expression code> code> (c.-à-d. Ce qui suit la logique après @CategoryId = 0 code>, le
Où code> la clause est toujours vrai, sinon il serait vrai lorsque
id = @CategoryId code>. P>
puis code> et
ele code>) doit être un < em> la valeur littérale em>, pas une autre expression logique. Dans ce cas, nous n'avons même pas besoin de
code>. P> p>
Votre syntaxe est fausse ... vous devez réorganiser votre si la variable est définie sur 0, puis où code> clause:
où Code> La clause est toujours vraie, sinon, sa valeur dépend de la condition
@categoryId = id code> p> p>
Ceci est possible, d'abord construire votre requête en fonction de votre code> condition code> condition
Le Références Docs montrer comment utiliser l'expression de cas.
@Daleburrell L'OP ne devrait même pas utiliser
case code> ici.
Vous pouvez utiliser une requête dynamique. SQLServerttudial.net/sql-serverver-storestored-ProcoDures / ...