自定义函数2

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 |
+------+----------------+
函数也有缺陷,那就是不能在函数中访问表,这使它们不如存储过程强大。 
利用函数你能做的全部就是设置变量,然后在控制流语句中使用它们。实际上这个功能很强大, 
但是离人们想要的却还很远。 
*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值