在MySQL中case when 主要有以下几种用法:
case 字段 when ,字段的具体值。
select a.*,
case name
when '流浪' then '法师'
else '战士'
end as '类型'
FROM c_20170920 a
case when 字段,这个可以对字段进行取范围。
SELECT a.*,
CASE
WHEN a.age BETWEEN 0 and 20 THEN '青年'
WHEN a.age BETWEEN 20 and 40 THEN '中年'
ELSE '非人类'
END AS '描述'
FROM
c_20170920 a
case when 字段1,字段2,可以对多个字段进行替换
SELECT a.*,
CASE
WHEN a.age BETWEEN 20 and 80 THEN '青年'
WHEN a.name ='流浪' THEN '帅气'
END AS '描述'
FROM
c_20170920 a
这里需要注意的是,如果两个条件都针对一个字段的话,会显示第一个when的值。
比如下面:
SELECT a.*,
CASE
WHEN a.age BETWEEN 0 and 20 THEN '青年'
WHEN a.name ='流浪' THEN '帅气'
END AS '描述'
FROM
c_20170920 a