任何人都可以帮助以下代码吗?我是mariaDB的新手,正在努力创建该功能。我什至不确定我是否高亮并正确执行它。无论我做什么,都会遇到很多错误。
DELIMITER $$
CREATE FUNCTION singerExperience(
experience DECIMAL(10,2)
)
RETURNS VARCHAR(20)
DETERMINISTIC
BEGIN
DECLARE singerExperience VARCHAR(20);
IF hours > 4000 THEN
SET singerExperience = 'PLATINUM';
ELSEIF (hours >= 4000 AND
hours <= 1000) THEN
SET singerExperience = 'GOLD';
ELSEIF hours < 1000 THEN
SET singerExperience = 'SILVER';
END IF;
RETURN (singerExperience);
END $$
DELIMITER ;
SELECT singer_id, singerExperience(experience)
FROM experiencelog
ORDER BY singer_id;
答案 0 :(得分:0)
如果您将参数experience
重命名为hours
(或可变的工作时间),则该功能应该起作用。
但是,如果可以在语句中处理函数,为什么还需要一个函数?
SELECT singer_id,
case experience < 1000 THEN 'SILVER' WHEN experience < 4000 THEN 'GOLD' ELSE 'PLATINUM' END
FROM experiencelog
ORDER BY singer_id;