MySQL create function for range of values with equivalent numbers
-
29-10-2019 - |
Вопрос
What is wrong with this function. Here is my expected output is
1 = 10
2 to 3 = 7
4 to 10 = 5
11 to 30 = 2
31 to 100 = 1
DELIMITER $$
DROP FUNCTION IF EXISTS `computeScore`$$
CREATE DEFINER=`root`@`localhost` FUNCTION `computeScore`(`POS` INT(11)) RETURNS int(11)
READS SQL DATA
DETERMINISTIC
BEGIN
DECLARE ordinal INT;
SELECT (
CASE
WHEN POS < 2 THEN 10
WHEN POS >= 2 < 4 THEN 7
WHEN POS >= 4 < 11 THEN 5
WHEN POS >= 11 < 31 THEN 2
ELSE 1
END )
INTO ordinal;
RETURN ordinal;
RETURN 0;
END;
$$
DELIMITER ;
Output: I always get 10
Нет правильного решения
Не связан с StackOverflow