MySQL if语句【6】

MySQL IF语句允许您根据表达式的某个条件或值结果来执行一组SQL语句。 要在MySQL中形成一个表达式,可以结合文字,变量,运算符,甚至函数来组合。表达式可以返回TRUE,FALSENULL,这三个值之一。

MySQL IF语句语法:

IF expression THEN 
   statements;
END IF;
如果表达式(expression)计算结果为TRUE,那么将执行statements语句,否则控制流将传递到END IF之后的下一个语句。

MySQL IF ELSE语句:

IF expression THEN
    statement;
ELSE
else-statements;
END IF;

MySQL IF ELSEIF ELSE语句:

IF expression THEN
   statements;
ELSEIF elseif-expression THEN
   elseif-statements;
...
ELSE
   else-statements;
END IF;
如果表达式(expression)求值为TRUE,则IF分支中的语句(statements)将执行;如果表达式求值为FALSE,则如果elseif_expression的计算结果为TRUE,MySQL将执行elseif-expression,否则执行ELSE分支中的else-statements语句。
下面是一个学习例子:

以下示例说明如何使用IF ESLEIF ELSE语句,GetCustomerLevel()存储过程接受客户编号和客户级别的两个参数。

首先,它从customers表中获得信用额度

然后,根据信用额度,它决定客户级别:PLATINUM , GOLDSILVER

参数p_customerlevel存储客户的级别,并由调用程序使用

USE yiibaidb;

DROP PROCEDURE
IF EXISTS get_customerLevel;

DELIMITER $$
CREATE PROCEDURE get_customerLevel (
IN customerNum INT (10),
OUT customerLevel VARCHAR (10)
)
BEGIN
DECLARE creditlim DOUBLE ;
SELECT
creditlimit INTO creditlim
FROM
customers
WHERE
customerNumber = customerNum ;
IF creditlim > 50000 THEN

SET customerLevel = 'PLATINUM' ;
ELSEIF creditlim <= 50000
AND creditlim > 10000 THEN

SET customerLevel = 'GOLD' ;
ELSEIF creditlim <= 10000 THEN

SET customerLevel = 'SILVER' ;
END
IF ;
END$$

DELIMITER ;
CALL get_customerLevel (124 ,@customerLevel) ;
SELECT @customerLevel ;

原文地址:https://www.cnblogs.com/yuezc/p/12930698.html