2013-05-28 30 views
0

问候!任何人都可以请帮我对于这种情况如何在oracle 9i中获取唯一结果集

表:课程

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

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

C001->工程。

C003->医学。

如果我使用不同的查询没有得到预期的结果,所以任何人都可以提供解决方案,我在oracle 9i开始阶段。

在此先感谢。

+0

您的要求似乎有点奇怪。为什么C001-工程而不是C002-工程?不同的意思是不同的行,所以只有当你选择不同的course_name ...'时才会起作用。 –

回答

0

假设你想要的“最低”(这是不是NLS语言和排序设置,因为一个简单的定义),每门课程名称课程编号:

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

似乎是一个奇怪的要求 - 同样的课程与两个身份证听起来不对,即使他们身处不同的院系,而且你基本上选择了随机的教师;但不像9i学习那么古怪。为什么不学习当前支持的版本? 11gR2是免费供个人使用的。

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

0

您需要一个聚合: 由于组“Course_name”有多个映射,您可以随便选择哪一个映射。

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