MySQL Crear función para el rango de valores con números equivalentes
-
29-10-2019 - |
Pregunta
¿Qué hay de malo en esta función? Aquí está mi resultado esperado es
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 ;
Salida: siempre obtengo 10
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow