1. 程式人生 > >流程控制語句Mysql

流程控制語句Mysql

####################流程控制語句 
-- 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 ;