ORA-00936: 缺少 '=' 的表达式
ORA-00936: missing expression for a '='
我被要求为我的 D.A.D class 做的一个特定问题如下:
• 编写一个 SQL 语句来执行以下操作:
• 显示 StuId、电影编号、标题、运行时间、评级代码、评级简短说明、tmdb 分数
符合以下任一条件的电影:
M的评级代码加上160-165(含)之间的运行次
G加运行次小于90的评级代码
PG 的评级代码加上 运行 次 120 或 121
MA的评级代码加上运行时间185分钟或以上
• 查询还必须只包括 tmdb_score 超过 6.1 的电影。
• 列表必须按升序电影顺序排列。
所以作为回应,我写了这个:
SELECT '103040698' as StudID, M.MovieNo, M.Title, M.RunTime, M.RatingCode, M.TMDB_Score, R.SHORTDESC, C.COLOURNAME
FROM Movie0698 M
INNER JOIN RATING0698 R
ON M.RatingCode = R.RatingCode
INNER JOIN COLOURTYPE0698 C
ON M.COLOURCODE = C.COLOURCODE
WHERE (M.RatingCode = 'M' AND M.RunTime BETWEEN 160 AND 165 AND M.TMDB_Score > 6.1)
OR (M.RatingCode = 'G' AND M.RunTime = < 90 AND M.TMDB_Score > 6.1)
OR (M.RatingCode = 'PG' AND M.RunTime BETWEEN 120 AND 121 AND M.TMDB_Score > 6.1)
OR M.RatingCode = 'MA' AND M.RunTime BETWEEN >=185 AND M.TMDB_Score > 6.1)
ORDER BY M.MovieNo ASC;
然而,错误信息
'OR (M.RatingCode = 'G' AND M.RunTime = < 90 AND M.TMDB_Score > 6.1)
Error at line 8:
ORA-00936: missing expression'
不断出现。在线程序 (SQLjunior) 指出“=”是第 8 行中的问题。我不确定我哪里出错了,因为我对其余部分使用了相同的格式通过我的导师的建议和那些查询提出问题 运行 很好。
“小于或等于”运算符是 <=
,而不是 >=
。即,在 M.RunTime
的条件下,您应该 M.RunTime <= 90
而不是 M.RunTime =< 90
。
你有三个错别字:
OR (M.RatingCode = 'G' AND M.RunTime = < 90 AND M.TMDB_Score > 6.1)
= <
应该是<=
。
并在:
OR M.RatingCode = 'MA' AND M.RunTime BETWEEN >=185 AND M.TMDB_Score > 6.1)
您需要删除 BETWEEN
。
和:
OR M.RatingCode = 'MA' AND M.RunTime BETWEEN >=185 AND M.TMDB_Score > 6.1)
在 OR
之后缺少开头 (
。
我被要求为我的 D.A.D class 做的一个特定问题如下:
• 编写一个 SQL 语句来执行以下操作: • 显示 StuId、电影编号、标题、运行时间、评级代码、评级简短说明、tmdb 分数 符合以下任一条件的电影: M的评级代码加上160-165(含)之间的运行次 G加运行次小于90的评级代码 PG 的评级代码加上 运行 次 120 或 121 MA的评级代码加上运行时间185分钟或以上 • 查询还必须只包括 tmdb_score 超过 6.1 的电影。 • 列表必须按升序电影顺序排列。
所以作为回应,我写了这个:
SELECT '103040698' as StudID, M.MovieNo, M.Title, M.RunTime, M.RatingCode, M.TMDB_Score, R.SHORTDESC, C.COLOURNAME
FROM Movie0698 M
INNER JOIN RATING0698 R
ON M.RatingCode = R.RatingCode
INNER JOIN COLOURTYPE0698 C
ON M.COLOURCODE = C.COLOURCODE
WHERE (M.RatingCode = 'M' AND M.RunTime BETWEEN 160 AND 165 AND M.TMDB_Score > 6.1)
OR (M.RatingCode = 'G' AND M.RunTime = < 90 AND M.TMDB_Score > 6.1)
OR (M.RatingCode = 'PG' AND M.RunTime BETWEEN 120 AND 121 AND M.TMDB_Score > 6.1)
OR M.RatingCode = 'MA' AND M.RunTime BETWEEN >=185 AND M.TMDB_Score > 6.1)
ORDER BY M.MovieNo ASC;
然而,错误信息
'OR (M.RatingCode = 'G' AND M.RunTime = < 90 AND M.TMDB_Score > 6.1)
Error at line 8:
ORA-00936: missing expression'
不断出现。在线程序 (SQLjunior) 指出“=”是第 8 行中的问题。我不确定我哪里出错了,因为我对其余部分使用了相同的格式通过我的导师的建议和那些查询提出问题 运行 很好。
“小于或等于”运算符是 <=
,而不是 >=
。即,在 M.RunTime
的条件下,您应该 M.RunTime <= 90
而不是 M.RunTime =< 90
。
你有三个错别字:
OR (M.RatingCode = 'G' AND M.RunTime = < 90 AND M.TMDB_Score > 6.1)
= <
应该是<=
。
并在:
OR M.RatingCode = 'MA' AND M.RunTime BETWEEN >=185 AND M.TMDB_Score > 6.1)
您需要删除 BETWEEN
。
和:
OR M.RatingCode = 'MA' AND M.RunTime BETWEEN >=185 AND M.TMDB_Score > 6.1)
在 OR
之后缺少开头 (
。