我正在為一個班級做作業,我應該確定這個人的年齡是否在以下類別之一之間:
AGE CLASSIFICATION
0-14 Children
15-24 Early working age
25-54 Prime working age
55-64 Mature working age
65 and above Elderly
這是我的腳本目前的樣子:
DELIMITER //
CREATE FUNCTION `Employee_age_classification`(`Employees_Last_Name` VARCHAR(50)) RETURNS varchar(50) CHARSET utf8mb4
DETERMINISTIC
BEGIN
DECLARE CLASS VARCHAR(50);
DECLARE AGE INT;
DECLARE LASTN VARCHAR(50);
SELECT TIMESTAMPDIFF(YEAR,Bdate,CURDATE())
INTO AGE
FROM EMPLOYEE
WHERE Lname = Employees_Last_Name;
IF AGE>=0 AND AGE<=14 THEN SET CLASS = 'Children';
ELSEIF AGE>=15 AND AGE<=24 THEN SET CLASS = 'Early Working Age';
ELSEIF AGE>=25 AND AGE<=54 THEN SET CLASS = 'Prime Working Age';
ELSEIF AGE>=55 AND AGE<=64 THEN SET CLASS = 'Mature Working Age';
ELSEIF AGE>=65 THEN SET CLASS = 'Elderly';
END IF;
RETURN CLASS;
DELIMITER;
當我嘗試運行它時顯示錯誤。
Error Code: 1064. You have an error in your SQL syntax.
我怎樣才能解決這個問題?
uj5u.com熱心網友回復:
您在最后一個 DELIMITER 之前缺少一個 END 陳述句 -
DELIMITER //
CREATE FUNCTION `Employee_age_classification`(`Employees_Last_Name` VARCHAR(50))
RETURNS varchar(50) CHARSET utf8mb4
DETERMINISTIC
BEGIN
DECLARE CLASS VARCHAR(50);
DECLARE AGE INT;
DECLARE LASTN VARCHAR(50);
SELECT TIMESTAMPDIFF(YEAR,Bdate,CURDATE())
INTO AGE
FROM EMPLOYEE
WHERE Lname = Employees_Last_Name;
IF AGE>=0 AND AGE<=14 THEN
SET CLASS = 'Children';
ELSEIF AGE>=15 AND AGE<=24 THEN
SET CLASS = 'Early Working Age';
ELSEIF AGE>=25 AND AGE<=54 THEN
SET CLASS = 'Prime Working Age';
ELSEIF AGE>=55 AND AGE<=64 THEN
SET CLASS = 'Mature Working Age';
ELSEIF AGE>=65 THEN
SET CLASS = 'Elderly';
END IF;
RETURN CLASS;
END//
DELIMITER;
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/438124.html
