MySQL 之 if 和 case

MySLQ

 

 

IF(exp1,exp2,exp3) 

=> 如果exp1为true,则返回exp2,  否则,返回exp3

SELECT IF(age>=25,"25岁及以上","25岁以下") age_cut,count(*)  number
FROM user_profile
GROUP BY age_cut;

结果应如下:

 

  Case when 的写法: 结果是一样的。

SELECT
case
when age>=25 then "25岁及以上"
when age<25 or age is null then "25岁以下"
end as age_cut,count(*)
from user_profile
group by age_cut

 

case 后面的一串其实就是指的一列的数据。

then 后面是这列要显示的值,end as 后面的age_cut是这列的别名。

 

Case函数(Case搜索函数): 判断表达式的真假,如果为真,返回结果;如果为假,返回else值;如果未定义else值,则返回空值(使用条件确定返回值);

select name,id,(case when id=34 then salary*2

when id=45 then salary*3

else salary

end) new_salary

from semp;
===》 else 不是必须的。

 

posted @ 2021-11-28 22:29  晨义  阅读(425)  评论(0)    收藏  举报