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?
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics