语句

时间:2018-01-27 23:55:14

标签: mysql

select CASE 
    WHEN (S.Marks >= G.Min_Mark and S.Marks <= G.Max_Mark and G.Grade >= 8)
    THEN S.Name, G.grade, S.Marks
    WHEN (S.Marks >= G.Min_Mark and S.Marks <= G.Max_Mark and G.Grade < 8) 
    THEN 'NULL', G.grade, S.Marks
    END
FROM Students S, Grades G;

我正在使用mysql,我收到语法错误。

1 个答案:

答案 0 :(得分:0)

您尝试从每个案例陈述中返回3个单独的字段。他们要么需要3个单独的案例陈述,要么只需提取G.gradeS.Marks,因为它们似乎根本不需要。有关详细信息,请参阅this答案:

SELECT
    CASE 
        WHEN (S.Marks >= G.Min_Mark and S.Marks <= G.Max_Mark and G.Grade >= 8)
        THEN S.Name
        WHEN (S.Marks >= G.Min_Mark and S.Marks <= G.Max_Mark and G.Grade < 8) 
        THEN 'NULL'
    END,
    G.grade,
    S.Marks
FROM Students S, Grades G;