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

时间:2013-05-28 11:10:11

标签: oracle oracle9i

问候!任何人都可以帮我解决这个问题

表:课程

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

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

C001->工程。

C003->医药。

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

先谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

看起来像一个奇怪的要求 - 同样的课程有两个ID听起来不对,即使他们在不同的院系,你基本上选择一个随机的教师;但不像在9i上学习那么奇怪。为什么不学习当前支持的版本? 11gR2免费供个人使用。

以下是当前版本中的documentation for aggregate functions,包括min;和9i version如果你真的想坚持下去。

答案 1 :(得分:0)

你需要一个聚合: 由于“Course_name”组有多个映射,因此无论如何都可以使用哪个映射。

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