Open In App

PL/SQL NOT EQUAL Operator

Last Updated : 11 Sep, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

In PL/SQL, the NOT EQUAL operator is used to compare two values and determine if they are not equal. If the values are different, the result of the comparison is true; otherwise, it is false.

This operator is often used in conditional statements and queries to filter data based on inequality. In this article, We will learn about PL/SQL NOT EQUAL Operator with the help of various examples and so on.

What is PL/SQL NOT EQUAL Operator?

The NOT EQUAL operator in PL/SQL is represented by != or <>. It is used to check if two expressions or values are not equal to each other.

This operator can be used in WHERE clauses, IF statements, and other conditional expressions.

Syntax:

Using != Operator:

expression1 != expression2

Using <> Operator:

expression1 <> expression2

Explanation:

  • expression1: The first value or column to compare.
  • expression2: The second value or column to compare.
  • != or <>: The NOT EQUAL operator that performs the comparison.

Examples of PL/SQL NOT EQUAL Operator

We create two tables, employees and departments, to demonstrate the use of the NOT EQUAL operator. The employees table stores employee details, while the departments table holds department information.

1. Employees Table

The employees table is set up with emp_id, emp_name, and dept_id, while the departments table includes dept_id and dept_name. We insert sample data into both tables for demonstration purposes.

Query:

-- Create `employees` table
CREATE TABLE employees (
emp_id NUMBER PRIMARY KEY,
emp_name VARCHAR2(50),
dept_id NUMBER
);

-- Insert data into `employees`
INSERT INTO employees (emp_id, emp_name, dept_id) VALUES (1, 'John Doe', 101);
INSERT INTO employees (emp_id, emp_name, dept_id) VALUES (2, 'Jane Smith', 102);
INSERT INTO employees (emp_id, emp_name, dept_id) VALUES (3, 'Emily Davis', 103);

Output:

emp_id

emp_name

dept_id

1

John Doe

101

2

Jane Smith

102

3

Emily Davis

103

Explanation:

  • The CREATE TABLE statement defines the employees table with columns for employee ID, name, and department ID.
  • The INSERT INTO statements add three records to this table: John Doe in department 101, Jane Smith in department 102, and Emily Davis in department 103.
  • This setup creates a basic structure for storing employee details and their departmental affiliations.

2. Department Table

The CREATE TABLE statement establishes the departments table with two columns: dept_id (the unique identifier for each department) and dept_name (the name of the department).

The INSERT INTO statements add three records to the table, specifying department IDs and their corresponding names: HR (101), Finance (102), and IT (104).

Query:

-- Create `departments` table 
CREATE TABLE departments (
dept_id NUMBER PRIMARY KEY,
dept_name VARCHAR2(50) );

-- Insert data into `departments`
INSERT INTO departments (dept_id, dept_name) VALUES (101, 'HR');
INSERT INTO departments (dept_id, dept_name) VALUES (102, 'Finance');
INSERT INTO departments (dept_id, dept_name) VALUES (104, 'IT');

Output:

dept_id

dept_name

101

HR

102

Finance

104

IT

Explanation:

The above department table is the output of the above query displaying the department information .This table represents the department information with unique IDs and names, capturing the organizational structure relevant to the employees' departmental affiliations.

Example 1: Basic Comparison

This SQL query retrieves the names of employees whose department ID is not equal to 101. It uses the != operator in the WHERE clause to filter out employees from department 101 and return only those who belong to other departments.

Query:

SELECT emp_name
FROM employees
WHERE dept_id != 101;

Output:

emp_name

Jane Smith

Emily Davis

Explanation:

The output includes names of employees with dept_id values other than 101, excluding those with dept_id equal to 101.

  • Includes: Names of employees with dept_id values other than 101.
  • Excludes: Employees with dept_id equal to 101.

Example 2: Using <> in a Join

This SQL query performs a join between the employees and departments tables using a condition that filters out rows where the dept_id values do not match. The join is based on e.dept_id <> d.dept_id, meaning it will include rows where the department IDs are different.

Query:

SELECT e.emp_name, d.dept_name
FROM employees e
JOIN departments d ON e.dept_id <> d.dept_id;

Output:

emp_name

dept_name

John Doe

Finance

John Doe

IT

Jane Smith

HR

Jane Smith

IT

Emily Davis

HR

Emily Davis

Finance

Emily Davis

IT

Explanation:

  • Includes: Pairs of employee names and department names where the dept_id values do not match between the two tables.
  • Excludes: Pairs where the dept_id values are the same.

Example 3: Conditional Logic in PL/SQL Block

This SQL query uses a CASE statement to check if the name of the employee with emp_id = 2 is 'Jane Smith'. If it is not 'Jane Smith', the query returns 'Employee name is not Jane Smith'; otherwise, it returns 'Employee name is Jane Smith'.

Query:

SELECT
CASE
WHEN (SELECT emp_name FROM employees WHERE emp_id = 2) != 'Jane Smith'
THEN 'Employee name is not Jane Smith'
ELSE 'Employee name is Jane Smith'
END AS result;

Output:

result

Employees name is Jane Smith

Explanation:

  • If the employee's name is 'Jane Smith': Employee name is Jane Smith.
  • If the employee's name is not 'Jane Smith': Employee name is not Jane Smith.

Example 4: Filtering Rows in a Subquery

This SQL query retrieves the names of employees who work in departments that are not named 'IT'. The inner query selects dept_id values from the departments table where the department name is not 'IT'.

The outer query then uses these department IDs to filter employees from the employees table.

Query:

SELECT emp_name
FROM employees
WHERE dept_id IN (SELECT dept_id FROM departments WHERE dept_name <> 'IT');

Output:

emp_name

John Doe

Jane Smith

Explanation:

  • Includes: Names of employees whose department ID is associated with departments that do not have the name 'IT'.
  • Excludes: Employees who work in the 'IT' department.

Conclusion

The NOT EQUAL operator (!= or <>) in PL/SQL is essential for filtering and comparing data where values are not equal. It is versatile for use in queries and conditional statements to manage data based on inequality.


Next Article
Article Tags :

Similar Reads