我发现了一些关于此错误的问题,这个问题之前曾被问过,但这些错误并不完全正是我所期待的。 这就是我在这里问的原因。
运行此查询时出现ORA-00933: SQL command not properly ended
错误。
select T.course_id from course as T
where unique (select R.course_id from section as R
where T.course_id= R.course_id and R.year = 2009);
以下是截图:
现在,这个查询有什么问题?我该如何解决这个错误?
答案 0 :(得分:2)
问题是as
。 Oracle无法识别表别名。但是,我不明白distinct
正在做什么;也许你的意思是exists
:
select T.course_id
from course T
where exists (select R.course_id
from section R
where T.course_id= R.course_id and R.year = 2009
);
编辑:
如果要验证子查询中的所有课程都是不同的,并且数据库不支持unique
(可能是ANSI操作员,但我不确定它是否在其他地方实现):< / p>
select T.course_id
from course T
where 1 = (select (case when count(R.course_id) = count(distinct R.course_id) and
count(R.courseJ_id) = count(*)
then 1 else 0
end)
from section R
where T.course_id= R.course_id and R.year = 2009
);