drop table if exists t;
create table t (s1 int);
delete from t;
insert into t values (5);
insert into t values (4);
select * from t;
drop function if exists factorial;
delimiter //
create function factorial (n decimal(3,0))
returns decimal(20,0)
begin
declare factorial decimal(20,0) default 1;
declare counter decimal(3,0);
set counter = n;
factorial_loop: repeat
set factorial = factorial * counter;
set counter = counter - 1;
until counter = 1
end repeat;
return factorial;
end //
delimiter ;
select factorial(3);
/*
+--------------+
| factorial(3) |
+--------------+
| 6 |
+--------------+
*/
insert into t values (factorial(3));
select s1, factorial (s1) from t;
/*
+------+----------------+
| s1 | factorial (s1) |
+------+----------------+
| 5 | 120 |
| 4 | 24 |
| 6 | 720 |
+------+----------------+
函数也有缺陷,那就是不能在函数中访问表,这使它们不如存储过程强大。
利用函数你能做的全部就是设置变量,然后在控制流语句中使用它们。实际上这个功能很强大,
但是离人们想要的却还很远。
*/
自定义函数2
最新推荐文章于 2019-07-11 23:39:06 发布