J'essaie d'écrire une instruction SQL-Server CASE un peu plus complexe:
... and (@StatusID is null or (case when @StatusID = 0 and sr.Comment is not null else @StatusID == sr.StatusID end) = 1) and ...
mais je reçois une erreur avec le double signe égal. J'ai aussi essayé ça
else @StatusID = sr.StatusID then 1
et
else @StatusID is sr.StatusID
Je n'ai pas pu find d'informations sur ce que j'essaie de faire est possible sur SQL-Server.
Vous pouvez chercher ceci
and (@StatusID is null or 1 = (CASE WHEN @StatusID = 0 AND sr.Comment IS NOT NULL THEN 1 WHEN @StatusID = sr.StatusID THEN 1 end) )
CASE WHEN <EXPRESSION> THEN ... ELSE ... END
Est la syntaxe que vous souhaitez. Vous venez d'oublier le THEN
. De même, le signe égal unique est la syntaxe SQL correcte.
Cette question et réponse pourrait vous aider.
Une façon de réaliser une telle comparaison consiste à convertir le double en string et à les comparer, par exemple:
-- select ids (double) that start with '1' by casting them to varchar and using LIKE SELECT * FROM MyTable WHERE CAST(Id AS VARCHAR) LIKE '1%';