a=int(input("输入一个数[0,100]成绩:")) if 100>=a>=90: print("优") elif 90>a>=80: print("良") elif 80>a>=60: print("中") else: print("不及格")
print("输入一个数:") num=int(input()) if num>=0: if num<=20: print("[0,20]") else: print(">20") else: if num>=-10: print("(-10,0)") else: print("<=-10")
if 条件表达式 then 语句块1; elseif 表达式2 then 语句块2; elseif 表达式3 then 语句块3; else 语句块n; end if
例
CREATE DEFINER=`root`@`localhost` PROCEDURE `pTest`()
BEGIN
DECLARE vHour INT;
SET vHour =60;
IF vHour>70 THEN
SELECT ‘加班超多‘;
ELSEIF vHour> 50 AND vHour<=70 THEN
SELECT ‘加班多‘;
ELSEIF vHour >40 AND vHour<=50 THEN
SELECT ‘有加班‘;
ELSE
SELECT ‘没加班‘;
END IF;
END
case a when 1 then 语句块1; when 2 then 语句块2; else 语句块n; end case;
例
CREATE PROCEDURE pCase()
BEGIN
DECLARE job CHAR(50);
SET job =‘a‘;
CASE job
WHEN ‘a‘ THEN SELECT ‘工作是经理‘;
WHEN ‘b‘ THEN SELECT ‘工作是财务‘;
WHEN ‘c‘ THEN SELECT ‘工作是人事‘;
WHEN ‘d‘ THEN SELECT ‘工作是行政‘;
ELSE SELECT ‘是其它工作‘;
END CASE;
END;
case when a=1 then 语句块1; when a=2 then 语句块2; else 语句块n; end case;
while 条件表达式 do 循环体; end while;
例
CREATE PROCEDURE pWhile()
BEGIN
DECLARE vNum INT;
SET vNum = 0;
WHILE vNum<20 DO
SET vNum= vNum + 1;
END WHILE;
SELECT vNum;
END
[循环标签:] loop
循环体;
if 条件表达式 then
leave [循环标签];
end if;
end loop;
例
CREATE PROCEDURE pLoop()
BEGIN
DECLARE vNum INT;
SET vNum = 0;
addLoop:LOOP
IF vNum>20 THEN
LEAVE addLoop;
END IF;
SET vNum= vNum + 1;
END LOOP addloop;
SELECT vNum;
END
Leave 关键字:用户跳出当前的循还语句
语法:leave 循还标签;
Iterate 关键字:用于跳出本次循还,进行下次循还
语法:iterate 循还标签;
1、IF(expr,v1,v2)函数
如果表达式expr成立,返回结果v1;否则,返回结果v2。
2、 IFNULL(v1,v2)函数
如果v1的值不为NULL,则返回v1,否则返回v2。
3、CASE
CASE expr WHEN e1 THEN v1 WHEN e2 THEN v2 ... ELSE vn END
例
SQL> SELECT ename ,empno ,CASE job WHEN ‘clerk‘ THEN sal+ 100 WHEN ‘salesman‘ THEN sal + 1000 ELSE sal END FROM emp;
4、其他函数
floor(x) 返回小于等于x的最大整数
ceiling(x) 返回大于等于x的最小整数
mod(x) 返回余数
pow(x,y) 返回x的y次方
ABS(x) 返回x的绝对值
% : 模 - 由右侧操作数和余返回除以左侧操作数
** : 指数- 执行对操作指数(幂)的计算
// : 地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商。
原文:https://www.cnblogs.com/steven223-z/p/11537727.html