Sql Oracle查询,用于在其中一个条件为真但两个条件均为真时检索记录

Sql Oracle查询,用于在其中一个条件为真但两个条件均为真时检索记录,sql,oracle,conditional-operator,Sql,Oracle,Conditional Operator,我有下表,我想检索学习过英语或科学的学生(STUD\u ID)。如果他们既学过英语又学过科学,那就不要再学了 因此,所需的输出是101102104106107 该表实际上是一个视图,其中前两列来自表STUD\u INFO,主题列来自STUD\u INFO表中的嵌套表 SELECT groupid, Stud_id, NST.Name FROM STUD_INFO, TABLE(SUBINFO) NST 有人能帮我做一个SQL查询吗?有趣的是当

我有下表,我想检索学习过
英语
科学
的学生(
STUD\u ID
)。如果他们既学过英语又学过科学,那就不要再学了

因此,所需的输出是101102104106107

该表实际上是一个视图,其中前两列来自表
STUD\u INFO
,主题列来自STUD\u INFO表中的嵌套表

SELECT groupid, 
       Stud_id, 
       NST.Name
  FROM STUD_INFO, 
       TABLE(SUBINFO) NST
有人能帮我做一个SQL查询吗?有趣的是当我使用 主题=英语和主题=科学它不检索任何数据

groupid Stud_id Subject
-------   -------   --------
1   101 ENGLISH
1   102 MATH
1   103 ENGLISH
1   103 SCIENCE
1   104 ENGLISH
1   104 MATH
1   105 PT
1   105 ENGLISH
1   105 SCIENCE
2   106 ENGLISH
2   107 SCIENCE
2   108 SCIENCE
2   108 ENGLISH

Subject=ENGLISH和Subject=SCIENCE
说“学科必须同时是英语和科学”
,这是不可能的

select stud_id from your_view
where subject in ('ENGLISH', 'SCIENCE')
group by stud_id
having count(subject) = 1

这对你有用吗?

Subject=ENGLISH和Subject=SCIENCE
说“学科必须同时是英语和科学”,这是不可能的

select stud_id from your_view
where subject in ('ENGLISH', 'SCIENCE')
group by stud_id
having count(subject) = 1

这对您有用吗?

发布代码时不要使用制表符发布代码时不要使用制表符