Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能解释为什么这个函数在mariaDB中不起作用吗?_Mariadb - Fatal编程技术网

有人能解释为什么这个函数在mariaDB中不起作用吗?

有人能解释为什么这个函数在mariaDB中不起作用吗?,mariadb,Mariadb,有人能帮我写下面的代码吗?我是mariaDB的新手,正在努力创建函数。我甚至不确定我是否高举和执行它的权利。无论我做什么,我都会犯很多错误 DELIMITER $$ CREATE FUNCTION singerExperience( experience DECIMAL(10,2) ) RETURNS VARCHAR(20) DETERMINISTIC BEGIN DECLARE singerExperience VARCHAR(20); IF hours >

有人能帮我写下面的代码吗?我是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;
分隔符$$
创造功能和经验(
经验小数(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订购;