https://www.youtube.com/watch?v=m7RNucdXyNI

Similar to: - Swap consecutive seat ids

 DROP TABLE IF EXISTS Employees;
 
CREATE TABLE Employees (
   id INT PRIMARY KEY,
   name VARCHAR(50),
   joiningdate DATE
);

INSERT INTO Employees (id, name, joiningdate)
VALUES
(1, 'Bob', '2020-03-22'),
(2, 'Alice', '2021-01-15'),
(3, 'Charlie', '2019-11-30'),
(4, 'David', '2022-07-19'),
(5, 'Eve', '2023-02-01'),
(6,'Chris', '2023-02-02');

Pasted image 20241201142433.png

WITH
CASE WHEN
IFNULL()

with cte as (
SELECT * 
	,3*id - 2 as new_id
FROM Employees
)

select a.id 
	,a.name
    ,a.joiningdate
    ,ifnull(b.new_id,a.new_id) as new_id
from cte a left join cte b
on a.id = case when a.id%2=0 then b.id-1
				when a.id%2!=0 then b.id+1 end