有人能解释为什么这个函数在mariaDB中不起作用吗?
有人能帮我写下面的代码吗?我是mariaDB的新手,正在努力创建函数。我甚至不确定我是否高举和执行它的权利。无论我做什么,我都会犯很多错误有人能解释为什么这个函数在mariaDB中不起作用吗?,mariadb,Mariadb,有人能帮我写下面的代码吗?我是mariaDB的新手,正在努力创建函数。我甚至不确定我是否高举和执行它的权利。无论我做什么,我都会犯很多错误 DELIMITER $$ CREATE FUNCTION singerExperience( experience DECIMAL(10,2) ) RETURNS VARCHAR(20) DETERMINISTIC BEGIN DECLARE singerExperience VARCHAR(20); IF hours >
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;
分隔符$$
创造功能和经验(
经验小数(10,2)
)
返回VARCHAR(20)
确定性
开始
宣布singerExperience VARCHAR(20);
如果小时数>4000,则
SET singerExperience=‘白金’;
ELSEIF(小时数>=4000和
小时数如果将参数experience
重命名为hours
(或可变的经验小时数),则该功能应能工作
但是,如果可以在语句中处理函数,那么为什么需要函数呢
SELECT singer_id,
case experience < 1000 THEN 'SILVER' WHEN experience < 4000 THEN 'GOLD' ELSE 'PLATINUM' END
FROM experiencelog
ORDER BY singer_id;
选择singer\u id,
案例经验<1000,当经验<4000时为“银”,当经验<4000时为“金”,否则为“白金”
来自experiencelog
由singer_id订购;