我尝试使用 CASE 语句,但不断收到语法错误。我已经关注了docs但我似乎无法摆脱这个语法错误: 查询:
SELECT students.firstname, students.lastname, students.tnumber, grades.tnumber
FROM students, grades
CASE WHEN grades.tnumber=students.tnumber AND grades.courseid='CSC2110' AND (grades.Grade='A' OR grades.Grade='B' OR grades.Grade='C')THEN 'YES' ELSE 'NO' END
错误:
执行查询时出错。 MySQL:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行 'CASE WHENgrades.tnumber=students.tnumber ANDgrades.courseid='CSC2110' A' 附近使用的正确语法
忽略表和 select 语句。我更关心的是检查 CASE 语句的语法以及它抛出错误的原因。
最佳答案
尚不完全清楚您希望 CASE
表达式执行什么操作,但它似乎应该位于 SELECT
列表中。我还将连接条件(奇怪地出现在 CASE
表达式中)移至 ON
子句。
SELECT students.firstname,
students.lastname,
students.tnumber,
grades.tnumber,
CASE WHEN grades.courseid = 'CSC2110' AND
(grades.Grade='A' OR grades.Grade='B' OR grades.Grade='C')
THEN 'YES' ELSE 'NO' END AS someColumn
FROM students
INNER JOIN grades
ON grades.tnumber = students.tnumber
关于mysql - mySQL 不断出错的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40273784/