- case when 的语法有两种:
简单函数
CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
搜索函数
CASE WHEN [expr] THEN [result1]…ELSE [default] END
- 示例一
SELECT
rank ,
CASE WHEN rank = 1 THEN ‘第一名’ WHEN rank =2 THEN ‘第二名’ WHEN rank =3 THEN ‘第三名’ ELSE ‘暂无排名’ END AS result ,
uid
FROMuser_arena_redis
;
结果如下:
- 示例二
SELECT
SUM(CASE WHEN rank <= 5 THEN totalPower ELSE 0 END) AS ‘前五名总战斗力’ ,
SUM(CASE WHEN rank >=6 && rank <= 10 THEN totalPower ELSE 0 END)AS “第六名后总战斗力”
FROMuser_arena_redis
;
totalPower : 是表的字段;
结果如下:
- update中使用
update
user_arena_redis
set rank = (case when rank = 1 then 8888 else 6666 end) ;
或者
updateuser_arena_redis
set rank = (case rank when 1 then 888 else 0 end) ;