CREATE TABLE #temp (empid INT, empname VARCHAR(50), managerID INT, empWage MONEY)INSERT INTO #temp SELECT 1001, 'Lucky101', 1005, 1000.00UNION ALLSELECT 1002, 'Lucky102', 1005, 2000.00UNION ALLSELECT 1003, 'Lucky103', 1005, 3000.00UNION ALLSELECT 1004, 'Lucky104', 1005, 4000.00UNION ALLSELECT 1005, 'Lucky105', 1010, 5000.00UNION ALLSELECT 1006, 'Lucky106', 1010, 6000.00;WITH CTE AS (SELECT *, ROW_NUMBER() OVER (ORDER BY empWage desc) AS rowNumFROM #temp)SELECT * FROM cteWHERE rowNum = 4DROP TABLE #temp
SELECT TOP 1 empid,empWageFROM( SELECT TOP 4 empid,empWage FROM Empdetails ORDER BY empid DESC) a ORDER BY a.empid ASC
SELECT TOP 1 EmpID, MAX(EmpWage) AS [Max Wage]FROM EmpDetailsGROUP BY EmpIDHAVING MAX(EmpWage) < (SELECT TOP 1 MAX(EmpWage) FROM EmpDetails)ORDER BY [Max Wage] DESC
declare @TopWagePosition int;set @TopWagePosition = 2;WITH CTE AS(SELECT EmpID, EmpWage, RN = RANK() OVER (ORDER BY EmpWage DESC) FROM EmpDetails)SELECT * FROM CTE WHERE RN = @TopWagePosition;