Update table column values based on conditional logic Update table column values based on conditional logic postgresql postgresql

Update table column values based on conditional logic


Try using the CASE statement within the UPDATE command

UPDATE    [yourtablename]SET    salary =          CASE             WHEN salary BETWEEN 10000 AND 15000 THEN salary + 5000             WHEN salary BETWEEN 15000 AND 20000 THEN salary + 7000             WHEN salary BETWEEN 20000 AND 30000 THEN salary + 8000             WHEN salary BETWEEN 40000 AND 60000 THEN salary + 10000             ELSE salary         END 


Something like this:

UPDATE YourTableSET salary = CASE                     WHEN salary > 10000 AND salary <= 15000 THEN salary + 5000                    WHEN salary > 15000 AND salary <=20000 THEN salary + 7000                    .                    .                    .                END


Just use an UPDATE statement with a CASE statement with the required logic in it:

UPDATE SalaryTableSET Salary =     (CASE WHEN Salary BETWEEN 10000 AND 14999 THEN Salary + 5000          WHEN Salary BETWEEN 15000 AND 19999 THEN Salary + 7000          WHEN Salary BETWEEN 20000 AND 29999 THEN Salary + 8000          WHEN Salary BETWEEN 40000 AND 59000 THEN Salary + 10000          ELSE Salary     END)

I've used BETWEEN which evaluates greater than or equal to and less than or equal to, hence the values like 14999.

Also, you have a gap between 30000 and 40000, which isn't picked up, but I'm assuming this is down to it being dummy data.

Reference:

SQL BETWEEN

SQL CASE