sql语句条件判断函数(流程控制函数)在查询语句中,我们可能会遇到使⽤条件判断函数的情况,今天记录⼀下条件判断函数的使⽤。
名称具体作⽤
IF(EXPR ,V1,V2)如果满⾜条件返回第⼀个值,否则返回第⼆个
IFNULL(V1,V2)为空时返回第⼀个,不为空返回第⼆个
新发展理念CASE WHEN EXP1 THEN V1 WHEN EXP2 THEN V2 ELSE V3根据具体数据判断符合哪⼀个条件并返回符合条件的对应的值,例如:满⾜EXP1就返回V1
实例:
lect id ,urname ,score , if (score>60,'及格','不及格') as '考核' from student;
| id | urname | score | 考核 |
+----+----------+-------+--------+
| 1 | king | 95 | 及格 |
| 2 | king1 | 25 | 不及格 |
| 3 | king2 | 30 | 不及格 |
表白的词| 4 | king3 | 35 | 不及格 |
| 5 | king4 | 50 | 不及格 |
| 6 | king5 | 55 | 不及格 |
| 7 | king6 | 80 | 及格 |
| 8 | king7 | 90 | 及格 |
| 9 | king8 | 25 | 不及格 |
| 10 | king9 | 45 | 不及格 |
+----+----------+-------+--------+
lect id ,urname ,age , ifnull(age,'空') from cms_ur;
+----+----------+------+------------------+
| id | urname | age | ifnull(age,'空') |
科学分析
+----+----------+------+------------------+
| 1 | 张三 | 21 | 21 |
| 2 | 张三丰 | 31 | 31 |
| 3 | 章⼦怡 | 43 | 43 |
| 4 | long | 41 | 41 |
| 6 | queen | 66 | 66 |
火烧云作者
| 7 | king | 22 | 22 |
| 8 | blek | 53 | 53 |
| 9 | ro | 9 | 9 |
| 10 | lily | 39 | 39 |
甲磺酸伊马替尼胶囊| 11 | john | 72 | 72 |
| 12 | test1 | NULL | 空 |
| 13 | TEST2 | 18 | 18 |
+----+----------+------+------------------+
lect id ,urname ,score ,ca when score>60 then '及格' when score=60 then '太险了' when score<60 then '有点差劲'end as '分段' from student;
+----+----------+-------+----------+
| id | urname | score | 分段 |
+----+----------+-------+----------+
| 1 | king | 95 | 及格 |
| 2 | king1 | 25 | 有点差劲 |
| 3 | king2 | 30 | 有点差劲 |
| 4 | king3 | 35 | 有点差劲 |
| 5 | king4 | 50 | 有点差劲 |何东花园
| 6 | king5 | 55 | 有点差劲 |
| 7 | king6 | 80 | 及格 |
| 7 | king6 | 80 | 及格 |
| 8 | king7 | 90 | 及格 |
| 9 | king8 | 25 | 有点差劲 |
| 10 | king9 | 45 | 有点差劲 |
differen
+----+----------+-------+----------+
还有⼀种ca的形式如下:
ca 变量或者表达式或者字段
when 常量1 then 值1
电脑怎么格式化when 常量2 then 值2
....
el
end
注意区分两种形式的不同点
下⾯如果部门是30 显⽰1.1倍的⼯资,其他的⼀次类推,写法如下:
lect department_id ,salary ca department_id when 30 then salary*1.1 when 40 then salary*1.2 when 50 then salary*1.3 el salary end from employees; 注意的是这些函数的位置是在字段的时候使⽤,意思就是这些条件是对字段的操作,应该放在查询条件之前。