Je veux avoir une condition simple dans ma clause where, sur l'une des colonnes comme:confusion clause where dans SQL Server
Quand @PostTypeid is null
alors où devrait être PostTypeid in (4,5)
et si @PostTypeid is not null
alors où la clause devrait être J'essaie d'utiliser cas à cet effet, mais je pense que je suis confus avec la syntaxe. Voici ce que je suis venu avec jusqu'à présent:
(PostTypeid = case(@PostTypeId) when null then in (4,18) else @PostTypeId end)
L'erreur est quand je l'utilise dans, je ne pense pas que c'est une syntaxe valide. Quelle est la bonne façon de faire cela? Merci. Je ai essayé de déplacer les accolades à plusieurs autres endroits, mais en vain.
Merci
J'ai même utilisé '' (case (@PostTypeId) quand null puis PostTypeId dans (4, 18) sinon PosttypeId = @PostTypeId end) '' et sql n'a pas du tout aimé ça! – iamserious
Votre logique n'a pas de sens. @PostTypeid peut être nul et 4 en même temps? – gbn
@gbn: si 4 ou 18 est passé, alors j'ai besoin de sélectionner les messages dans ce type d'id, si rien n'est passé (null est passé), je veux sélectionner les messages des deux id. Est-ce que ma logique dit qu'elle peut être nulle et 4 en même temps? Je ne peux pas le voir (prolly à cause de la bière que j'ai eu hier) pouvez-vous s'il vous plaît expliquer plus? – iamserious