SQL查询错误"关键字'IS'附近的语法不正确."

kev*_*vin 3 sql-server

我的代码出了什么问题?

我想传递BIT以从TBL表中检索非活动或活动行.

这是错误

关键字"IS"附近的语法不正确.

这是代码

CREATE function [CM].[fnSearch]
(
@Status bit
)
RETURNS Table
as 
RETURN
(
    SELECT *
    FrOM TBL
    WHERE  CASE @Status 
                WHEN '0' THEN (DeletedBy IS NULL) 
                ELSE (DeletedBy IS NOT NULL)
           END
)
Run Code Online (Sandbox Code Playgroud)

更新:

(在SELECT之前是我的输入错误.抱歉.

Joe*_*orn 6

如果我正在读这个,那你试图(DeletedBy IS [NOT] NULL)用作一个布尔表达式来计算一个比特值(1或0)?如果是这样,你不能这样做.你需要这样的东西:

CASE WHEN (@Status = 0 AND DeletedBy IS NULL) OR DeletedBy IS NOT NULL THEN 1 ELSE 0 END
Run Code Online (Sandbox Code Playgroud)