MySQL Workbench“ Case”语句出现错误

问题描述

我正在使用MysqL Workbench,并使用以下显示错误的case语句。

ErrorCode:1064您的sql语法有错误:检查与您的MariaDB服务器版本相对应的手册以获取在...附近使用的正确语法。

select id,name,percentage,CASE
    WHEN PERCENTAGE >= 80 AND <= 100 THEN "Merit"
    WHEN PERCENTAGE >= 50 AND < 79 THEN "1st Division"
    WHEN PERCENTAGE >= 45 AND < 60 THEN "2nd Division"
    WHEN PERCENTAGE >= 33 AND < 45 THEN "3rd Division"
    WHEN PERCENTAGE < 33 THEN "Fail"
ELSE "Not Correct %"
END AS Grade
from student2;

解决方法

这样的条件无效。第二个比较(在AND之后)还需要一列:

 WHEN PERCENTAGE >= 80 AND <= 100 THEN

您可以改用以下内容:

 WHEN PERCENTAGE >= 80 AND PERCENTAGE <= 100 THEN

 -- or (if >= AND <=)
 WHEN PERCENTAGE BETWEEN 80 AND 100 THEN

正确的查询:

SELECT id,name,percentage,CASE
    WHEN PERCENTAGE BETWEEN 80 AND 100 THEN "Merit"
    WHEN PERCENTAGE >= 50 AND PERCENTAGE < 79 THEN "1st Division"
    WHEN PERCENTAGE >= 45 AND PERCENTAGE < 60 THEN "2nd Division"
    WHEN PERCENTAGE >= 33 AND PERCENTAGE < 45 THEN "3rd Division"
    WHEN PERCENTAGE < 33 THEN "Fail"
ELSE "Not Correct %" END AS Grade
FROM student2;