0
votes

Comment utiliser la condition dans t-sql

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 xxx

donc si je passe 0 au paramètre @CategoryId Je ne devrais pas filtrer à Tout, sinon je veux filtrer. Peut-il être fait?


3 commentaires

Le Références Docs montrer comment utiliser l'expression de cas.


@Daleburrell L'OP ne devrait même pas utiliser case ici.


Vous pouvez utiliser une requête dynamique. SQLServerttudial.net/sql-serverver-storestored-ProcoDures / ...


3 Réponses :


4
votes

Rehrasser votre logique pour supprimer le cas Expression: xxx

Ceci fonctionne, car lorsque @CategoryId = 0 , le la clause est toujours vrai, sinon il serait vrai lorsque id = @CategoryId .

Votre tentative actuelle est un problème courant, découlant de ne pas utiliser de < Code> Case L'expression telle qu'elle est destinée. Le prédicat d'une expression (c.-à-d. Ce qui suit la logique après puis et ele ) doit être un < em> la valeur littérale , pas une autre expression logique. Dans ce cas, nous n'avons même pas besoin de .


0 commentaires

0
votes

Votre syntaxe est fausse ... vous devez réorganiser votre clause: xxx

si la variable est définie sur 0, puis La clause est toujours vraie, sinon, sa valeur dépend de la condition @categoryId = id


0 commentaires

0
votes

Ceci est possible, d'abord construire votre requête en fonction de votre condition condition xxx


0 commentaires