CREATE TABLE emp_devp
AS
SELECT * FROM employee e
WHERE dept_id = 4;
UPDATE emp_devp
SET salary = 0;
COMMIT;
SELECT emp_id, emp_name, salary, bonus, email
FROM emp_devp
ORDER BY emp_id;
emp_id|emp_name|salary|bonus |email |
------+--------+------+-------+-------------------+
9|赵云 | 0.00|6000.00|zhaoyun@shuguo.com |
10|廖化 | 0.00| |liaohua@shuguo.com |
11|关平 | 0.00| |guanping@shuguo.com|
12|赵氏 | 0.00| |zhaoshi@shuguo.com |
13|关兴 | 0.00| |guanxing@shuguo.com|
14|张苞 | 0.00| |zhangbao@shuguo.com|
15|赵统 | 0.00| |zhaotong@shuguo.com|
16|周仓 | 0.00| |zhoucang@shuguo.com|
17|马岱 | 0.00| |madai@shuguo.com |
UPDATE emp_devp ed
SET ed.salary = e.salary,
ed.bonus = e.bonus,
ed.email = e.email
FROM employee e
WHERE e.emp_id = ed.emp_id;
SELECT emp_id, emp_name, salary, bonus, email
FROM emp_devp
ORDER BY emp_id;
emp_id|emp_name|salary |bonus |email |
------+--------+--------+-------+-------------------+
9|赵云 |15000.00|6000.00|zhaoyun@shuguo.com |
10|廖化 | 6500.00| |liaohua@shuguo.com |
11|关平 | 6800.00| |guanping@shuguo.com|
12|赵氏 | 6600.00| |zhaoshi@shuguo.com |
13|关兴 | 7000.00| |guanxing@shuguo.com|
14|张苞 | 6500.00| |zhangbao@shuguo.com|
15|赵统 | 6000.00| |zhaotong@shuguo.com|
16|周仓 | 8000.00| |zhoucang@shuguo.com|
17|马岱 | 5800.00| |madai@shuguo.com |
UPDATE emp_devp ed
SET (salary, bonus, email) = (SELECT salary, bonus, email
FROM employee e
WHERE e.emp_id = ed.emp_id)
WHERE EXISTS (SELECT 1
FROM employee e
WHERE e.emp_id = ed.emp_id);
MERGE INTO emp_devp ed
USING employee e
ON (e.emp_id = ed.emp_id)
WHEN MATCHED THEN
UPDATE SET ed.salary = e.salary,
ed.bonus = e.bonus,
ed.email = e.email;
UPDATE emp_devp ed
SET ed.salary = e.salary,
ed.bonus = e.bonus,
ed.email = e.email
FROM employee e
JOIN job j ON (e.job_id = j.job_id AND j.job_title = '程序员')
WHERE e.emp_id = ed.emp_id;
DELETE emp_devp ed
FROM employee e
WHERE ed.emp_id = e.emp_id
AND e.salary < 10000;
SELECT emp_id, emp_name, salary, bonus, email
FROM emp_devp
ORDER BY emp_id;
EMP_ID|EMP_NAME|SALARY|BONUS|EMAIL |
------+--------+------+-----+------------------+
9|赵云 | 15000| 6000|zhaoyun@shuguo.com|
DELETE emp_devp ed
FROM employee e
JOIN job j ON j.job_id = e.job_id
WHERE ed.emp_id = e.emp_id
AND j.job_title = '开发经理';
原文作者:SQL编程思想;如有侵权,请联系管理员删除。