MySQL中有哪些流程函数
这篇文章将为大家详细讲解有关MySQL中有哪些流程函数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
流程函数是MySQL相对常用的一类函数, 用户可以使用这类函数在一个SQL语句中实现条件选择, 这样能够提高效率.
下面列出了MySQL跟条件有关的流程函数
下面的例子中模拟对职员进行分类,首先创建一个职员薪水表:
createtablesalary(useridint,salarydecimal(9,2));
插入一些测试数据
insertintosalaryvalues(1,1000),(2,2000),(3,3000),(4,4000),(5,5000),(1,null);
数据如下
mysql>select*fromsalary;+--------+---------+|userid|salary|+--------+---------+|1|1000.00||2|2000.00||3|3000.00||4|4000.00||5|5000.00||1|NULL|+--------+---------+6rowsinset(0.00sec)
接下来, 通过这个表来介绍各个函数的应用.
IF(expr1,expr2,expr3)函数: 这里认为月薪在2000元以上的职员属于高薪, 用"high'表示; 而2000以下的职员属于低薪, 用'low'来表示.
mysql>selectif(salary>2000,'high','low')fromsalary;+--------------------------------+|if(salary>2000,'high','low')|+--------------------------------+|low||low||high||high||high||low|+--------------------------------+6rowsinset(0.00sec)
IFNULL(expr1,expr2)函数: 这个函数一般用来替换NULL值, 我们知道NULL值是不能参参与数值运算的, 下面这个语句就是把NULL值用0替换.
mysql>selectifnull(salary,0)fromsalary;+------------------+|ifnull(salary,0)|+------------------+|1000.00||2000.00||3000.00||4000.00||5000.00||0.00|+------------------+6rowsinset(0.00sec)
CASE WHEN [value1] THEN[result1]… ELSE[default] END函数:这里可以用case when..then函数实现上面例子中高薪低薪的问题.
mysql>selectCASEWHENsalary<=2000THEN'low'else'high'ENDfromsalary;+---------------------------------------------------+|CASEWHENsalary<=2000THEN'low'else'high'END|+---------------------------------------------------+|low||low||high||high||high||high|+---------------------------------------------------+6rowsinset(0.00sec)
CASE [expr] WHEN [value1] THEN[result1]… ELSE[default] END函数:这里还可以分为多种情况把职员的薪水分为多个档次,比如下面的例子分成高、中、低3种情况。同样可以分成更多种情况,这里不再举例了,有兴趣的朋友可以自己测试一下
mysql>selectCASEsalaryWHEN1000THEN'low'when2000THEN'mid'ELSE'high'ENDfromsalary;+-----------------------------------------------------------------------+|CASEsalaryWHEN1000THEN'low'when2000THEN'mid'ELSE'high'END|+-----------------------------------------------------------------------+|low||mid||high||high||high||high|+-----------------------------------------------------------------------+6rowsinset(0.00sec)
关于MySQL中有哪些流程函数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。