Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从Oracle检索一组特殊的数据_Sql_Oracle_Select - Fatal编程技术网

Sql 如何从Oracle检索一组特殊的数据

Sql 如何从Oracle检索一组特殊的数据,sql,oracle,select,Sql,Oracle,Select,我有一个课程表,里面有学生的课程。桌子的每一行是一道菜。 各栏分别为: student id, course, term 我想看看有多少学生在x学期选修了课程1和(课程2或课程3)以及课程4 如何编写SQL语句来执行查询?您可以使用一个处理2和3相同的case表达式,然后计算每个学生的不同课程数: SELECT student_id FROM courses WHERE course >= 1 AND course <= 4 GROUP BY student_id

我有一个课程表,里面有学生的课程。桌子的每一行是一道菜。 各栏分别为:

student id, course, term
我想看看有多少学生在x学期选修了课程1和(课程2或课程3)以及课程4


如何编写SQL语句来执行查询?

您可以使用一个处理2和3相同的
case
表达式,然后计算每个学生的不同课程数:

SELECT   student_id
FROM     courses
WHERE    course >= 1 AND course <= 4
GROUP BY student_id
HAVING   COUNT (DISTINCT CASE course WHEN 2 THEN 3 ELSE course END) = 3
选择学生id
从球场

课程>=1和课程我想你在你的课程中进入了关于
分组的章节?我无法决定是否应该回答这个问题,希望OP随后会通过期末考试,或者拒绝回答,因为这显然是OP自己应该弄清楚的家庭作业。(学生注意-涉及
课程
学生
的问题或表明问题学术来源的其他表格初步被认为是家庭作业。正如您所知……)。最后,我想我会发表这篇评论。。。(叹气)干得好。
HAVING
子句中的
CASE
表达式非常好。我很惭愧我没有想到这样的事情。:-)非常感谢。我要试一试!