Oracle中SQL语句查询
一、 在ORACLE数据库中,人员信息表person的数据如下:
Person_id Person_name Person_age
001 张明 56
002 李强 25
003 王春 56
004 刘芳 21
005 黄军 39
006 赵宁 56
……(以下略)
由于人员的年龄有可能相等,请查询显示person_age最大的人员中,person_id最小的一条记录,请按ORACLE数据库的语法写出SQL:
请大家帮忙答一下,小弟明天要交,这是我的笔试题。
------解决方案--------------------select * from (
select * from person
where person_age=(select max(person_age) from person)
order by person_id)
where rownum=1
------解决方案--------------------select *
from
(select * from person where person_age desc,person_id asc)
where rownum <=1
------解决方案--------------------不可行啊,首先,where 语句后面必须是条件,这个就错了;
楼主的目的很明了,但是你写的查询语句估计没去试运行下,即使语句纠正对了,这样搜索出来的结果集肯定是以下这样:
001张明56
001李强56
001王春56
001刘芳56
001黄军56
001赵宁56
而不会是一条记录;