问题描述
我正在使用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;