一道数据库面试题

表A
有两列   姓名   ,工资

            小王         2000
            小张         1200
            小非         2000
            小赵         5000

问题是找出工资排第二的人(包含重复)

--------
一个感觉比较灵活但是效率有点低的方法,不知道大家有更好的方法没?

create table test01
(
TestName varchar2(10),
GZ number(10)
)
;

insert into test01 values('小A','1000');
insert into test01 values('小B','2000');
insert into test01 values('小C','2000');
insert into test01 values('小D','3000');
insert into test01 values('小E','4000');
insert into test01 values('小F','3000');
insert into test01 values('小G','4000');

select * from test01 tt1
where (select count(distinct gz) from test01 tt2 where tt2.gz>=tt1.gz)=1


你可能感兴趣的:(数据库)