目录
一、条件函数概览
二、测试表结构
select * from student;
+---------------+--------------+
| student.name | student.sex |
+---------------+--------------+
| Marry | F |
| Join | M |
| Alex | F |
| Tom | M |
+---------------+--------------+
三、使用介绍
1、if函数
语法规则:
if(boolean testCondition, T valueTrue, T valueFalseOrNull)
使用说明:
当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull
使用举例:
select name,if(sex='F','男','女') sex from student;
+--------+------+
| name | sex |
+--------+------+
| Marry | 男 |
| Join | 女 |
| Alex | 男 |
| Tom | 女 |
+--------+------+
2、coalesce函数
语法规则:
coalsece(T v1, T v2, …)
使用说明:
返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL
使用举例:
select coalesce(null,name,sex) from student;
+--------+
| _c0 |
+--------+
| Marry |
| Join |
| Alex |
| Tom |
+--------+
3、case函数
此函数有两种语法规则;
第一种使用情况:
语法规则:
case a when b then c [when d then e]* [else f] end
使用说明:
如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f
使用举例:
select name, (case name when 'Marry' then '001' when 'Join' then '002' else '003' end) flag from student;
+--------+-------+
| name | flag |
+--------+-------+
| Marry | 001 |
| Join | 002 |
| Alex | 003 |
| Tom | 003 |
+--------+-------+
第二种使用情况:
语法规则:
case when a then b [when c when d]* [esle e] END
使用说明:
如果a为TRUE,则返回b;如果c为TRUE,则返回d;否则返回e
使用举例:
select name, (case when name='Marry' then '001' when name='Join' then '002' else '003' end) flag from student;
+--------+-------+
| name | flag |
+--------+-------+
| Marry | 001 |
| Join | 002 |
| Alex | 003 |
| Tom | 003 |
+--------+-------+