Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

주어진 숫자의 계승을 계산하는 MySQL 저장 함수를 어떻게 작성할 수 있습니까?


다음은 주어진 숫자의 계승을 계산할 수 있는 저장 함수의 예입니다 -

CREATE FUNCTION factorial (n DECIMAL(3,0))
RETURNS DECIMAL(20,0)
DETERMINISTIC
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 //

mysql> Select Factorial(5)//
+--------------+
| Factorial(5) |
+--------------+
|          120 |
+--------------+
1 row in set (0.27 sec)

mysql> Select Factorial(6)//
+--------------+
| Factorial(6) |
+--------------+
|          720 |
+--------------+
1 row in set (0.00 sec)