DROP FUNCTION IF EXISTS input; DELIMITER $$ CREATE FUNCTION input(a INTEGER) RETURNS INT DETERMINISTIC BEGIN DECLARE temp VARCHAR(10); DECLARE i INT DEFAULT 1; DECLARE j INT DEFAULT 0; DECLARE l INT ; SET temp = CONVERT(a,CHAR); SET l=CHAR_LENGTH(RTRIM(temp));
WHILE i <=l DO SET j = j + CONVERT(SUBSTR(temp,i,1), UNSIGNED INTEGER); SET i=i+1; END WHILE; RETURN j;
Select我用了,系统报错。
DELIMITER $$
CREATE FUNCTION input(a INTEGER) RETURNS INT
DETERMINISTIC
BEGIN
DECLARE temp VARCHAR(10);
DECLARE i INT DEFAULT 1;
DECLARE j INT DEFAULT 0;
DECLARE l INT ;
SET temp = CONVERT(a,CHAR);
SET l=CHAR_LENGTH(RTRIM(temp));
WHILE i <=l DO
SET j = j + CONVERT(SUBSTR(temp,i,1), UNSIGNED INTEGER);
SET i=i+1;
END WHILE;
RETURN j;
-- return l;
END $$
SELECT input(456);