SQL结合CASE和AND

Dev*_*vEx 1 sql

如何将SQL合并CASE语句多AND,这样我可以检查多个条件,即我想随意改变region来自233244shopid = 455:

select
    id,
    case region
       when 233 and shopid = 455 and FLOOR(RAND()*(3-1)+1) = 1 then 244
       when 233 and shopid = 455 and FLOOR(RAND()*(3-1)+1) = 2 then 233
       else region
    end
from 
    table1
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

谓词'233 AND shopid = 455'的操作数'233'部分应返回类型'BOOLEAN'但返回类型'INT'.

仅供参考FLOOR(RAND()*(3-1)+1),收益率为1或2

Sli*_*ost 6

使用另一种形式case:

select
id,
case 
  when region = 233 and shopid = 455 and FLOOR(RAND()*(3-1)+1) = 1 then 244
  when region = 233 and shopid = 455 and FLOOR(RAND()*(3-1)+1) = 2 then 233
  else region
end
from table1
Run Code Online (Sandbox Code Playgroud)