SQL

1.   How to get nth highest salary of employee

WITH CTE AS
(
    SELECT empid,empSalary,
           RN = DENSE_RANK()  OVER (ORDER BY empSalary DESC)
    FROM dbo.tblEmpDetails
)
SELECT *
FROM CTE
WHERE RN = nth value

2. What is CURSOR in sql server.


DECLARE @QUESTIONID AS INTEGER
DECLARE @QUESTIONSCUR CURSOR
   SET @QUESTIONSCUR= CURSOR FAST_FORWARD FOR
   SELECT QUESTIONID FROM TBLQUESTIONS
OPEN @QUESTIONSCUR
    FETCH NEXT FROM @QUESTIONSCUR INTO @QUESTIONID
    WHILE @@FETCH_STATUS = 0
BEGIN
   UPDATE TBLQUESTIONS SET RANK=90 WHERE QUESTIONID=@QUESTIONID
   FETCH NEXT FROM @QUESTIONSCUR INTO @QUESTIONID
END
   CLOSE @QUESTIONSCUR
   DEALLOCATE @QUESTIONSCUR


Read second highest frome ach group:



WITH EXT as
(
  SELECT ID,NAME,SALARY,RK=DENSE_RANK() OVER (partition by name ORDER BY salary DESC) FROMtblempsal
)

select * from EXT where RK=nth highest

Delete duplicate record:

WITH EXT as
(
  SELECT ID,NAME,SALARY,RK=DENSE_RANK() OVER (partition by name ORDER BY salary DESC) FROMtblempsal
)

select * from EXT where RK>=2


No comments:

Post a Comment

Contact Us:

Email:

Vinodkumar434@gmail.com,
vinodtechnosoft@gmail.com

Skype Name:

vinodtechnosoft