获取第四行查询结果

use*_*815 2 sql-server rows

我正在使用Microsoft SQL Server 2012,我有这个查询(如下).它正确返回所有内容,但我无法弄清楚如何只返回第4行.

我知道如何使用简单的查询来完成它,但是使用查询这个复杂的我不知道如何只返回第4行.由于我使用的是MS SQL Server,因此无法使用Limit/Offset.如何以及在何处放置代码以仅打印第4行?我很难过.谢谢.

SELECT T.[First Name],
T.[Last Name],
T.[Middle Name],
T.[Country Name],
T.[Designation Name],
Salary.Emp_Salary AS 'Current Salary'
FROM
(
SELECT
    Emp_First_Name AS "First Name",
    Emp_Last_Name AS "Last Name",
    Emp_Middle_Name AS "Middle Name",
    Country_Name AS "Country Name",
    Desig_Name as "Designation Name",
    MAX(Emp_Salary_Change_Year) AS "Time"
    FROM Employee_Details

   INNER JOIN Country ON Employee_Details.Emp_Country_Id = Country.Country_Id
   INNER JOIN State ON Employee_Details.Emp_State_Id = State.State_Id
   INNER JOIN Designation ON Employee_Details.Desig_Id = Designation.Desig_Id
   INNER JOIN Salary ON Employee_Details.Emp_Id = Salary.Emp_Id

   GROUP BY Emp_First_Name, Emp_Last_Name,
   Emp_Middle_Name, Country_Name, Desig_Name) AS T
   INNER JOIN Salary ON T.Time = Salary.Emp_Salary_Change_Year
   ORDER BY [Current Salary];
Run Code Online (Sandbox Code Playgroud)

小智 6

使用带有ROW_NUMBER()的CTE

;WITH Cte AS
(
    SELECT Col1, Col2, ...,
         ROW_NUMBER() OVER (ORDER BY ...) AS RowNum
    FROM Table
)
SELECT *
FROM Cte
WHERE RowNum = 4
Run Code Online (Sandbox Code Playgroud)