oracle查询所有课程并降序排序
时间: 2023-09-09 15:11:30 浏览: 153
您可以使用以下 SQL 查询语句来获取所有课程并按照降序排序:
```
SELECT * FROM 课程表 ORDER BY 课程名 DESC;
```
其中,`课程表` 是您的课程表的表名,`课程名` 是您的课程名称列的列名。使用 `DESC` 关键字可以使查询结果按照降序排列,如果您想按照升序排列,可以使用 `ASC` 关键字。
相关问题
oracle查询所有课程信息并降序排序
可以使用如下的 SQL 语句查询所有课程信息并按照课程编号(course_id)降序排序:
```
SELECT * FROM course ORDER BY course_id DESC;
```
其中,`course` 表是存储所有课程信息的表,`ORDER BY` 语句用于指定排序的字段和排序方式,`DESC` 表示降序排序。执行该 SQL 语句后,会返回所有课程信息,并按照课程编号降序排列。
现有成绩表和学生表。注意, 成绩表中的学号与学生表中的学号关联,60分及格,另外可能有学生旷考所有考试科目。。2.用Oracle统计学生姓名及其考试总成绩,并按总成绩高低降序。(15分)3.查询所有考试两门或两门以上科目都不及格的学生姓名,包括旷考考生。
首先,我们需要创建一个SQL查询来满足这三个需求:
1. 统计学生姓名及其考试总成绩并按总成绩排序:
```sql
SELECT s.student_name, SUM(c.score) AS total_score
FROM students s
JOIN scores c ON s.student_id = c.student_id
WHERE c.score IS NOT NULL AND c.score >= 60
GROUP BY s.student_name
ORDER BY total_score DESC;
```
这个查询会从学生表(students)和成绩表(scores)中联接数据,计算每个学生的总分数,只考虑那些得分大于等于60(非0分或不及格)的情况。
2. 查询所有考试两门或两门以上科目都不及格的学生姓名,包括旷考考生:
```sql
WITH eligible_students AS (
SELECT student_id
FROM scores
WHERE score < 60 OR score IS NULL
GROUP BY student_id
HAVING COUNT(*) >= 2
)
SELECT s.student_name
FROM students s
LEFT JOIN eligible_students es ON s.student_id = es.student_id
WHERE es.student_id IS NULL;
```
这里我们首先通过子查询`eligible_students`找出所有不及格或旷考的学生(至少两门),然后在主查询中,对学生们进行左连接,如果某个学生不在子查询的结果集中,说明他们至少一门课程及格,因此结果就是两门或两门以上科目都不及格的学生。
阅读全文