oracle 现在有一张班级表有班级id课程id开课时间classtime根据课程id去班级表中查询开课时间距离当前时间最近的班级id
可以使用以下SQL语句实现:
SELECT class_id FROM class_table WHERE course_id = '要查询的课程id' AND classtime >= SYSDATE ORDER BY classtime ASC FETCH FIRST 1 ROW ONLY;
解释一下SQL语句的含义:
-
查询班级表class_table中的class_id字段,即班级id。
-
WHERE子句中限定条件是course_id = '要查询的课程id',即查询指定课程id的班级。
-
WHERE子句中再加上一个条件classtime >= SYSDATE,即查询开课时间大于等于当前时间的班级。这是为了排除已经过期的班级。
-
ORDER BY子句按照开课时间classtime升序排序,即距离当前时间最近的班级排在前面。
-
FETCH FIRST 1 ROW ONLY表示只取第一行结果,即开课时间最近的班级。
注意:上述SQL语句中的SYSDATE为Oracle的系统函数,返回当前日期和时间。如果当前时间是2019-09-01 10:00:00,那么查询结果将只包含开课时间大于等于2019-09-01 10:00:00的班级
原文地址: http://www.cveoy.top/t/topic/eB5m 著作权归作者所有。请勿转载和采集!