流程控制語句Mysql
阿新 • • 發佈:2019-02-04
####################流程控制語句 -- 1.順序控制語句 begin..end... delimiter // create function max1(i int,j int) returns int begin return (select * from student where 學號=xh); end // delimiter ; -- 2.分支控制語句 /* if ...then...; else....; end if; */ delimiter // create function f1(j int) returns int begin declare i int; if i%2 =0 then return 0; else return 1; end if; end // delimiter ; select f1(23); /*case語句 case....when...then...; when...then...; else...; end case; */ delimiter // create function scorel(i int) returns char(6) begin declare j int; declare cj char(6); case when j>=90 then set cj= '優秀'; when j>=80 and j<90 then set cj='良好'; when j>=70 and j<80 then set cj='中等'; when j>=60 and j<70 then set cj='及格'; else set cj='不及格'; end case; return cj; end // delimiter ;
################### #詳解case when ################### /* CASE WHEN 條件1 THEN 表示式1 WHEN 條件2 THEN 表示式2 ... ELSE 表示式n END */ -- 例子一: create database xscj; use xscj; create table xs(學號 char(6) not null primary key, 姓名 char(8) not null, 專業名 char(10) null, 性別 tinyint(1) not null default 1, 出生日期 date not null, 總學分 tinyint(1) null, 照片 blob null, 備註 text null ); insert into xs values( '081101', '王林',null,1,'1994-02-10',50,null,null); insert into xs values('081102', '程明', '計算機', 1, '1995-02-01', 50, ' D:\IMAGE\ picture.jpg', null); insert into xs values( '081103', '李建',null,1,'1995-02-10',50,default,default); select 學號, 姓名, case -- 選擇的第三個列 最後別名為等級 when 總學分 is null then '尚未選課' when 總學分 < 50 then '不及格' when 總學分 >=50 and 總學分<=52 then '合格' else '優秀' end as 等級 from xs where 專業名 = '計算機';
-- 3.迴圈控制語句 /*while...do ...; end while; */ delimiter ## create function sum1() returns int begin declare s int default 0; declare i int default 1; while i<=100 do set s=s+i; set i=i+1; end while; return s; end## delimiter ;