SQL - CAS de l'expression à l'intérieur OÙ

J'ai lu sur l'utilisation de l'expression case à l'intérieur de la clause where ici:

http://scottelkin.com/sql/using-a-case-statement-in-a-sql-where-clause/

Je suis en train de l'utiliser pour filtrer les résultats de mon instruction select, basé sur un numéro de contrat qui sera passé par l'application de l'utilisateur. Mon code actuellement déclenche une erreur de 'Invalide paramètre' peu importe ce qui est passé. J'ai vérifié SÉLECTION/à PARTIR de fonctionnent très bien, comme lorsque que la clause where, sans une expression case. Voici mon code.

WHERE     (CASE WHEN @ContractNo = 0 THEN @ContractNo ELSE @ContractNo END =
tblContracts.ContractNo)

La redondance du code est pour des fins de dépannage, je suis à la planification sur l'utilisation générique de filtrage sur le CAS plus tard. Je me concentre sur l'obtention de la syntaxe en bas à droite maintenant. Je crois que ce doit retourner tous les enregistrements pour lesquels le paramètre correspond au numéro de contrat stockées dans la table. De l'aide ou des conseils seraient grandement appréciés.

OriginalL'auteur | 2009-01-05