SQL 语句如何查询工资最高的10个人?

2025-03-22 18:06:13
推荐回答(5个)
回答1:

请问你用的什么数据库。

如果MSSQL的是
select top 10 * from emp order by sal desc

如果是Oracle的是
select * from (
select a.*,rownum r from
(
select * from emp
order by sal desc) a
) b
where b.r<=10

但是还有一个问题就是第11位和第10位的工资是一样的可能(并列的情况),上面的语句就欠考虑了。那么就需要修改上面的语句。

如果MSSQL的是
SELECT * FROM emp
WHERE sal IN (
select TOP 10 sal from emp
ORDER BY sal DESC)
ORDER BY sal DESC

如果是Oracle的是
SELECT * FROM emp
WHERE sal IN (
select sal from (
select a.*,rownum r from (
select * from emp order by sal desc) a --对emp进行升序排列
) b --给出伪列
where b.r<=10--获得伪列在10以内的
) ORDER BY sal DESC

回答2:

使用查询语句
select
top
3
*
from
(数据库)
order
by
(工资字段名)
desc
如果取出来的刚好是工资最低的,那就把desc去掉
如果你需要完整的代码,可以直接联系我
,说明你的数据库,开发使用的语言,我可以帮你写完整的代码

回答3:

select max(工资列)from 表名称

回答4:

拿点分就走!

回答5:

select top 10 name
from emp
order by sal desc