MySQL常用函数系列之十一:流程函数(2)

来源:互联网 发布:mysql 32位 64位 区别 编辑:程序博客网 时间:2024/05/01 16:17
         

本文将演示以下2个 MySQL中的常用流程函数。

函数

功能

CASE WHEN [value1]

THEN[result1]…ELSE[default]END

如果value1 是真,返回result1,否则返回default

CASE [expr] WHEN [value1]

THEN[result1]…ELSE[default]END

如果expr 等于value1,返回result1,否则返回default

下面将结合实例对这些函数进行介绍。

CASE  WHEN  [value1]  THEN[result1]…ELSE[default]END 函 数:

我们也可以用 case when…then函数实现高薪低薪的问题。

 示例1:

mysql> select case when salary<=2000 then 'low' else 'high' end from salary; +---------------------------------------------------+

| case when salary<=2000 then 'low' else 'high' end |

+---------------------------------------------------+

| low                                               |

| low                                               |

| high                                              |

| high                                              |

| high                                              |

| high                                              |

+---------------------------------------------------+

6 rows in set (0.00 sec)

 

CASE [expr] WHEN [value1] THEN[result1]…ELSE[default]END函数:这里还可以分多种情况把职员的薪水分多个档次,比如下面的例子分成高、中、低3种情况。同样还可以分成更多种情况,这里就不再举例了,有兴趣的读者可以自己测试一下。

 示例2:

mysql> select case salary

->when 1000 then 'low'

->when 2000 then 'mid'

->else 'high' end from salary;

+-----------------------------------------------------------------------+

| case salary when 1000 then 'low' when 2000 then 'mid' else 'high' end |

+-----------------------------------------------------------------------+

| low                                                                   |

| mid                                                                   |

| high                                                                  |

| high                                                                  |

| high                                                                  |

| high                                                                  |

+-----------------------------------------------------------------------+

6 rows in set (0.00 sec)

 

0 0