Open In App

Displaying the Employees in Decreasing Order of their Salaries in SQL Server

Last Updated : 26 May, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

In SQL, we need to find out the department-wise information from the given table containing information about employees. One such data is the details of the employees sorted in decreasing order of their salaries. We shall use the ORDER BY clause to achieve this. This is illustrated below. For this article, we will be using the Microsoft SQL Server as our database.

Step 1: Create a Database. For this use the below command to create a database named GeeksForGeeks.

Query:

CREATE DATABASE GeeksForGeeks

Output:

Step 2: Use the GeeksForGeeks database. For this use the below command.

Query:

USE GeeksForGeeks

Output:

Step 3: Create a table COMPANY inside the database GeeksForGeeks. This table has 4 columns namely EMPLOYEE_ID, EMPLOYEE_NAME, DEPARTMENT_NAME, and SALARY containing the id, name, department, and the salary of various employees.

Query:

CREATE TABLE COMPANY(
EMPLOYEE_ID INT PRIMARY KEY,
EMPLOYEE_NAME VARCHAR(10),
DEPARTMENT_NAME VARCHAR(10),
SALARY INT);

Output:

Step 4: Describe the structure of the table COMPANY.

Query:

EXEC SP_COLUMNS COMPANY;

Output:

Step 5: Insert 5 rows into the COMPANY table.

Query:

INSERT INTO COMPANY VALUES(1,'RAM','HR',10000);
INSERT INTO COMPANY VALUES(2,'AMRIT','MRKT',20000);
INSERT INTO COMPANY VALUES(3,'RAVI','HR',30000);
INSERT INTO COMPANY VALUES(4,'NITIN','MRKT',40000);
INSERT INTO COMPANY VALUES(5,'VARUN','IT',50000);

Output:

Step 7: Display the details of the employees in the decreasing order of their salaries. We will use the ORDER BY clause along with the DESC clause to sort the rows according to decreasing salaries of the employees. The column name SALARY must be mentioned after the ORDER BY clause to specify the basis of sorting.

Syntax:

SELECT * FROM TABLE_NAME ORDER BY COLUMN DESC;

Query:

SELECT * FROM COMPANY ORDER BY SALARY DESC;

Note: This query returns all the rows in the sorted(reversed) order.

Output:

Method 2: Using a Common Table Expression (CTE) and ROW_NUMBER()

Query:

WITH RankedEmployees AS (
    SELECT EMPLOYEE_NAME, Salary, ROW_NUMBER() OVER (ORDER BY Salary DESC) AS Rank
    FROM DEPARTMENT
)
SELECT EMPLOYEE_NAME, Salary
FROM RankedEmployees
ORDER BY Rank;

Output:

sql output


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads