- IF(expr1,expr2,expr3)
如果 expr1 是TRUE ,则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。if语句还可以相互嵌套,如下
- IF(IF(expr1,expr2,expr3),expr2,expr3)
可以多层嵌套使用,多个判断语句
题目
使用if解决:
SELECT
device_id, gender,
IF(age IS NULL , '其他',
IF(age < 20, '20岁以下',
IF(age BETWEEN 20 AND 24, '20-24岁', '25岁及以上'))) AS age_cut // 三层嵌套
FROM
user_profile;
WHEN表达式
- 用法一
CASE
WHEN 条件判断 THEN 结果
......
WHEN 条件判断 THEN 结果
ELSE 其他结果
END
ELSE就是java当中的default
上面那个图使用when解法
SELECT
device_id, gender,
CASE
WHEN age < 20 THEN '20岁以下'
WHEN age < 25 THEN '20-24岁'
WHEN age >= 25 THEN '25岁及以上'
ELSE '其他'
END
AS age_cut
FROM
user_profile;
- 方法二
CASE 列值
WHEN 值1 THEN 结果1
......
WHEN 值2 THEN 结果2
ELSE 其他结果
END
举例
把性别改成男/女
SELECT
CASE gender
WHEN 'male' THEN '男'
WHEN 'female' THEN '女'
ELSE '其他'
END AS gender
FROM
user_profile;
if和when联合使用
when的第一种用法和if可以联合使用
WHEN 条件判断 THEN 结果 ,其中条件判断可以改为if
参考
MySQL if 语句用法
mysql中的when的用法_MySQL数据库之Mysql casewhen的三种用法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)