学习MySql
SQL26> select age_cut,count(age_cut) from (
select if(age>=25,'25岁以及上','25岁以下') as age_cut from user_profile) a
group by age_cut;
SQL27> select device_id,gender,
if(age<20,'20岁以下',
if(age>=25,'25岁以上',
if((age>=20 and age<25),'20-24岁','其他')))
from user_profile;
刷题总结:
一个错误:Every derived table must have its own alias(每个派生表必须有自己的别名)
参考博客: MySQL系列之派生查询别名问题
MySql if 语句
IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 != 0 and expr1 != NULL),则 IF() 的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值
例:
mysql> select *,if(sex='男','man','women') as sex_type from users;
+----+----------+------+------+---------+------+----------+
| id | nickname | sex | age | address | gpa | sex_type |
+----+----------+------+------+---------+------+----------+
| 1 | 小明 | 男 | 18 | 北京 | 3.1 | man |
| 2 | 小红 | 女 | 16 | 北京 | 3.5 | women |
| 3 | 小王 | 男 | 17 | 上海 | 3.9 | man |
| 4 | 小赵 | 女 | 20 | 长沙 | 2.6 | women |
+----+----------+------+------+---------+------+----------+
作为表达式的if也可以用case when来代替,以以上例为例:
select *,case sex when '男' then 'men' else 'women' end as sex_type from users;
if else 做为流程控制语句使用
IF search_condition THEN
statement_list
[ELSEIF search_condition THEN]
statement_list ...
[ELSE
statement_list]
END IF
当IF中条件search_condition成立时,执行THEN后的statement_list语句,否则判断ELSEIF中的条件,成立则执行其后的statement_list语句,否则继续判断其他分支。当所有分支的条件均不成立时,执行ELSE分支。search_condition是一个条件表达式,可以由“=、<、<=、>、>=、!=”等条件运算符组成,并且可以使用AND、OR、NOT对多个表达式进行组合。
学习JavaScript
|