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,我收到语法错误。
答案 0 :(得分:0)
您尝试从每个案例陈述中返回3个单独的字段。他们要么需要3个单独的案例陈述,要么只需提取G.grade
和S.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;