I am doing an academic project right now and there are functions required.
Here are the functions I created.
I tried to run those codes but result shows ERROR 1064-42000(syntax error), I don't know where is the problem.
DELIMITER //
DROP FUNCTION IF EXISTS code_STID;
CREATE FUNCTION code_STID(STID VARCHAR(25))
RETURNS VARCHAR(15)
BEGIN DECLARE newCode VARCHAR(25);
DECLARE codeNumber INT;
SET newCode = STID;
SET codeNumber = SUBSTRING(newCode,1,length(newCode)-1);
IF codeNumber < 100
SET newCode = 'Z'+codeNumber;
ELSE IF newCode = STID;
END IF;
RETURN newCode;
END //
DELIMITER ;
DROP FUNCTION IF EXISTS code_Rank;
DELIMITER //
CREATE FUNCTION code_Rank(RANK VARCHAR(8))
RETURNS VARCHAR(2)
BEGIN
DECLARE Rank_Value VARCHAR(8);
IF RANK = 'LT';
THEN SET Rank_Value = 'O1';
ELSE IF RANK = 'CAPT'
THEN SET Rank_Value= 'O2';
ELSE IF RANK = 'CMDR'
THEN SET Rank_Value = 'O3';
ELSE IF RANK ='TRPR'
THEN SET Rank_Value = 'E1';
ELSE IF RANK = 'SP'
THEN SET Rank_Value = 'E2';
ELSE IF RANK = 'CPL'
THEN SET Rank_Value = 'E3';
ELSE IF RANK = 'SGT'
THEN SET Rank_Value = 'E4';
ELSE IF RANK = 'MSGT'
THEN SET Rank_Value = 'E5'
END IF;
RETURN Rank_Value ;
END //
DELIMITER ;
DROP FUNCTION IF EXISTS code_Gender;
DELIMITER //
CREATE FUNCTION code_Gender(GENDER VARCHAR(25))
RETURNS VARCHAR(1)
BEGIN
DECLARE GENDER_CODE VARCHAR(2);
IF GENDER = 'MALE'
THEN SET GENDER_CODE='M';
ELSEIF GENDER = 'FEMALE'
THEN SET GENDER_CODE = 'F';
END IF;
RETURN GENDER_CODE;
END//
DELIMITER ;
DROP FUNCTION IF EXISTS code_Height;
DELIMITER //
CREATE FUNCTION code_Height(height INT,Weight INT, STID VARCHAR(25))
RETURNS INT
BEGIN
DECLARE height_code INT;
DECLARE first_Digit_ID INT;
SET first_Digit_ID = CONVERT(SUBSTRING(STID,3,1));
SET height_code = height*3 + (Weight *first_Digit_ID)+Weight ;
RETURN height_code;
END//
DELIMITER ;
SELECT code_Height(410,250,'ST523') AS 'RESULT';
DROP FUNCTION IF EXISTS code_DC;
DELIMITER //
CREATE FUNCTION code_DC(DutyCategory VARCHAR(25))
RETURNS VARCHAR(1)
BEGIN
DECLARE CDC_CODE VARCHAR(2);
IF DutyCategory = 'Active'
THEN SET CDC_CODE = 'A';
ELSEIF
THEN SET CDC_CODE ='R';
RETURN CDC_CODE;
END IF;
END//
DELIMITER ;
SELECT code_DC('Active') AS 'Result';
DROP FUNCTION IF EXISTS code_DS;
DELIMITER //
CREATE FUNCTION code_DS(DutyStatus varchar(25))
RETURNS VARCHAR(1)
BEGIN
DECLARE status_Code VARCHAR(2);
IF DutyStatus = 'Full Duty'
THEN SET status_Code = 'X';
ELSE
SET status_Code ='Y';
END IF;
RETURN status_Code;
END //
DELIMITER ;
DROP FUNCTION IF EXISTS code_Role;
DELIMITER //
CREATE FUNCTION code_Role(Role VARCHAR(25))
RETURNS VARCHAR(10)
BEGIN
DECLARE role_value VARCHAR(5);
IF Role = 'Trooper'OR Role = 'Demolitions' OR Role = 'Assault'
THEN SET role_value = 'INF';
ELSE IF Role = 'Communications' OR Role = 'Medical'
THEN SET role_value = 'SPT'
ELSE IF role = 'Reconnanissance'
THEN SET role_value = 'SPECOPS'
RETURN role_value;
END IF;
RETURN role_value;
SELECT role_value AS 'result';
END //
DELIMITER ;
Aucun commentaire:
Enregistrer un commentaire