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

来源:百度知道 编辑:UC知道 时间:2024/06/01 22:46:41
数据库表名为emp,字段id(标识),name(员工姓名),sal(薪水)
现在我想查询薪水最多的前10个人的姓名,请问如何写查询语句,谢谢!

请问你用的什么数据库。

如果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

SELECT * FROM emp ORDER BY sal DESC LIMIT 10;

select max(工资列)from 表名称

拿点分就走!

select top 10 * from emp order by sal desc,name,id