等价于SQL Server中的double equals?

Sql*_*Nab 3 sql-server

我正在尝试编写一些更复杂的SQL Server CASE语句:

...
and (@StatusID is null or
       (case 
           when @StatusID = 0 and sr.Comment is not null
           else @StatusID == sr.StatusID
       end) 
     = 1)
and ...
Run Code Online (Sandbox Code Playgroud)

但双等号出现错误。我也试过了

else @StatusID = sr.StatusID then 1 
Run Code Online (Sandbox Code Playgroud)

else @StatusID is sr.StatusID
Run Code Online (Sandbox Code Playgroud)

在SQL Server上找不到关于我要执行的操作的任何信息。

Jay*_*hav 5

您可能正在寻找

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) 
 )
Run Code Online (Sandbox Code Playgroud)