Sql 为什么';操作员是否在案例陈述中工作?

Sql 为什么';操作员是否在案例陈述中工作?,sql,sql-server,sql-server-2008,tsql,stored-procedures,Sql,Sql Server,Sql Server 2008,Tsql,Stored Procedures,我一直试图在CASE语句中添加或运算符,但它不起作用 Where W.Organization_ID = CASE @IsAdmin OR @IsChiefEngineer WHEN 1 THEN W.Organization_ID ELSE @OrganizationID END 我想检查是否有IsAdmin或IsChief工程师,或者他们是1,然后Organization else@OrganizationID您可以按如下方式编写: Where W.Organizatio

我一直试图在CASE语句中添加运算符,但它不起作用

 Where W.Organization_ID = 
 CASE @IsAdmin OR @IsChiefEngineer 
 WHEN 1 
 THEN W.Organization_ID 
 ELSE @OrganizationID END

我想检查是否有IsAdmin或IsChief工程师,或者他们是1,然后Organization else@OrganizationID

您可以按如下方式编写:

Where W.Organization_ID = CASE 
    WHEN @IsAdmin = 1 OR @IsChiefEngineer = 1 
        THEN W.Organization_ID 
    ELSE @OrganizationID END

您应该测试OR运算符“内部”的每个参数

    CASE 
       WHEN @IsAdmin = 1 OR @IsChiefEngineer = 1 
       THEN W.Organization_ID 
       ELSE @OrganizationID 
    END

基本上,只需稍微修改一下您的案例陈述:

CASE
WHEN @IsAdmin = 1  OR @IsChiefEngineer = 1 
THEN W.Organization_ID 
ELSE @OrganizationID 
END

大小写表达式,而不是语句。您使用的语法不能用于多个变量。请查看下面的答案以了解解决方法。抱歉,我没有注意您的代码,这应该可以,但它已经被回答了。