如何将SQL合并CASE语句多AND,这样我可以检查多个条件,即我想随意改变region来自233于244为shopid = 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
使用另一种形式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)