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

时间:2015-09-23 15:30:44

标签: sql oracle select

我有一个课程表,可以存储学生的课程。表格的每一行都是一个课程。 列是:

student id, course, term

我想看看有多少学生在第x学期修读课程1和(课程2或课程3)和课程4。

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

1 个答案:

答案 0 :(得分:1)

你可以使用case表达式来对待2和3,然后计算每个学生不同的课程数量:

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