用SQL语句查出员工工资表(WorersSalary)所有信息,工资最高的前三条信息按升序排在最前面,其余的按原序

2025-03-23 04:24:45
推荐回答(3个)
回答1:

请说明使用的数据库类型
mysql如下
select distinct * from(
select * from WorersSalary orde by Salary desc limit 0,3 a union
select * from WorersSalary b)
sqlserver如下
select distinct * from(
select top 3 * from WorersSalary orde by Salary desc a union
select * from WorersSalary b)

回答2:

select tt.salary from
(select t.salary,row_number() over (order by salary) from WorersSalary t
) tt
where tt.rn<=3
union
select salary from WorersSalary
union会合并结果集,并排除掉重复记录,所以不敢保证这个查询能满足你要求,最好配合人员的ID去做

回答3:

ujuyj