2021.9.6 学习总结

学习MySql
2021.9.6 学习总结

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

上一篇:原型,原型链,call/apply


下一篇:django--提交数据并展示