0

问候 !谁能帮我解决这种情况

表:课程

 Course id        Course_Name    Faculty  
  C001            Engineering    Computers  
  C002            Engineering    Electronics  
  C003            Medicine       Cardiology  
  C004            Medicine       Neurology   

我的要求是,我需要显示课程名称和 Couse id,没有重复
我的预期结果应该是:

C001->工程。

C003->医学。

如果我在查询中使用 distinct 没有得到预期的结果,那么任何人都可以提供解决方案,我在 oracle 9i 中处于起步阶段。

提前致谢。

4

2 回答 2

0

假设您想要每个课程名称的“最低”(由于 NLS 语言和排序设置,这不是一个简单的定义)课程 ID:

select min(course_id) as course_id, course_name
from course
group by course_name;

似乎是一个奇怪的要求——同一门课程有两个 ID 听起来不正确,即使他们在不同的院系,而且你基本上是在选择一个随机的院系;但不像在 9i 上学习那么奇怪。为什么不学习当前受支持的版本?11gR2 免费供个人使用。

这是来自当前版本的聚合函数的文档,包括min;和9i 版本,如果你真的想坚持的话。

于 2013-05-28T11:17:39.203 回答
0

您需要一个聚合:由于组“Course_name”有多个映射,因此您可能会得到任意一个。

select max('Course id'), 'Course_Name' from Course group by Course_Name
于 2013-05-28T11:18:30.107 回答