如何在oracle 9i中获取唯一的结果集

如何在oracle 9i中获取唯一的结果集,oracle,oracle9i,Oracle,Oracle9i,你好!有人能帮我解决这个问题吗 表:课程 Course id Course_Name Faculty C001 Engineering Computers C002 Engineering Electronics C003 Medicine Cardiology C004 Medicine Neurology 我

你好!有人能帮我解决这个问题吗

表:课程

 Course id        Course_Name    Faculty  
  C001            Engineering    Computers  
  C002            Engineering    Electronics  
  C003            Medicine       Cardiology  
  C004            Medicine       Neurology   
我的要求是,我需要显示课程名称和课程id,无重复
我的预期结果应该是:

C001->工程

C003->医学

如果我在查询中使用distinct没有得到预期的结果,那么任何人都可以提供解决方案,我在Oracle9i的开始阶段


提前感谢。

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

select min(course_id) as course_id, course_name
from course
group by course_name;
这似乎是一个奇怪的要求——同一门课程有两个ID听起来并不正确,即使他们在不同的学院,而且你基本上是随机挑选了一个学院;但不像在9i上学习那么奇怪。为什么不在当前受支持的版本上学习?11gR2免费供个人使用

以下是当前版本的,包括
min
;如果你真的想坚持下去,你需要一个聚合: 由于组“Course_name”有多个映射,因此您可能会得到任意映射

select max('Course id'), 'Course_Name' from Course group by Course_Name

你的要求似乎有点奇怪。为什么是C001工程而不是C002工程?Distinct表示不同的行,因此仅当您执行
选择不同的课程名称…
时才有效。