PostgreSQL Update Table: Update the designation of employees for a specific number of employees using LIKE operator in the HR database
7. Write a SQL statement to change the job ID of the employee which ID is 118 to SH_CLERK if the employee belongs to a department which ID is 30 and the existing job ID does not start with SH.
Sample table: employees
Sample Solution:
Code:
-- This SQL statement updates the 'JOB_ID' column in the 'employees' table for an employee with employee_id=118
-- and department_id=30 if their current job does not start with 'SH'. It sets their job to 'SH_CLERK'.
UPDATE employees
SET JOB_ID = 'SH_CLERK'
WHERE employee_id = 118
AND department_id = 30
AND NOT JOB_ID LIKE 'SH%';
Explanation:
- The UPDATE statement is used to modify existing records in a table.
- employees is the name of the table being updated.
- SET JOB_ID = 'SH_CLERK' specifies that the value of the 'JOB_ID' column should be set to 'SH_CLERK' for the rows that meet the specified condition.
- WHERE employee_id = 118 AND department_id = 30 AND NOT JOB_ID LIKE 'SH%' restricts the update operation to only the row where the value of the 'employee_id' column is 118, the value of the 'department_id' column is 30, and the 'JOB_ID' column does not start with 'SH'. This ensures that only the employee with employee_id=118, department_id=30, and a job not starting with 'SH' will have their job updated to 'SH_CLERK'.
Output:
See the result. Only the effected rows have been displayed.
postgres=# SELECT * FROM employees WHERE employee_id=118 AND department_id=30 AND JOB_ID LIKE 'SH%'; employee_id | first_name | last_name | email | phone_number | hire_date | job_id | salary | commission_pct | manager_id | department_id -------------+------------+-----------+---------+--------------+------------+----------+---------+----------------+------------+--------------- 118 | Guy | Himuro | GHIMURO | 515.127.4565 | 1987-07-05 | SH_CLERK | 2600.00 | 0.00 | 114 | 30 (1 row)
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a SQL statement to change the salary of an employee to 8000 whose ID is 105, if the existing salary is less than 5000.
Next: Write a SQL statement to increase the salary of employees under the department 40, 90 and 110 according to the company rules that, the salary will be increased by 25% of the department 40, 15% for department 90 and 10% of the department 110 and the rest of the department will remain same.
What is the difficulty level of this exercise?
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/postgresql-exercises/update-table/update-table-exercise-7.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics