用于从SQL Server中的表中检索前两行的查询
我有一个名为Employee的表,其中包含以下字段: 埃皮德 薪水 名称 我想得到薪水最高的前两名员工。如何编写此查询?试试这个用于从SQL Server中的表中检索前两行的查询,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有一个名为Employee的表,其中包含以下字段: 埃皮德 薪水 名称 我想得到薪水最高的前两名员工。如何编写此查询?试试这个 SELECT * from Employee order by Salary desc limit 2 ; 按薪资描述从员工订单中选择前2个* SQL Server 2000+: SELECT TOP 2 e.* FROM EMPLOYEE e ORDER BY e.salary DESC MySQL和Postgres: SE
SELECT * from Employee order by Salary desc limit 2 ;
按薪资描述从员工订单中选择前2个* SQL Server 2000+:
SELECT TOP 2
e.*
FROM EMPLOYEE e
ORDER BY e.salary DESC
MySQL和Postgres:
SELECT e.*
FROM EMPLOYEE e
ORDER BY e.salary DESC
LIMIT 2
甲骨文:
SELECT x.*
FROM (SELECT e.*,
ROWNUM as rn
FROM EMPLOYEE e
ORDER BY e.salary DESC) x
WHERE x.rn <= 2
你应该这样写 按薪资从员工订单中选择前2名EmpID、Salary和Name,这是另一个解决方案:
With NumberedItems As
(
Select EmpId, Salary, Name
, Row_Number() Over ( Order By Salary Desc ) As SalaryRank
From Employee
)
Select EmpId, Salary, Name
From NumberedItems
Where SalaryRank <= 2
或者,如果使用SqlServer,则从员工订单中选择前2*。行号CTE也是SQL Server 2005+,尽管从技术上讲OP没有指定SQL的版本。从技术上讲,它可能是SQL Server 4.2,其中不存在TOP命令;