SQL> update t2 set sal = (case when job='clerk' then sal+500 when job='salesman' then sal+1000 when job='analyst' then sal+1500 else sal+2000 end) where name = '&empname';
你的意思是不是有一张员工表,现在如果给定一个员工名字,将所有同名的员工的工资信息给更新一下?如果是的话,可以如下,不过我的猜测好像没有什么意义! DECLARE CURSOR emp_cur(name varchar2(50)) IS SELECT * FROM emp WHERE emp_name=name; BEGIN FOR cur IN emp_cur('张三') LOOP IF cur.emp_job='clerk' THEN UPDATE emp SET emp_sal=emp_sal+500; ELSIF cur.emp_job='salesman' THEN UPDATE emp SET emp_sal=emp_sal+1000; ELSIF cur.emp_job='analyst' THEN UPDATE emp SET emp_sal=emp_sal+1500; ELSE UPDATE emp SET emp_sal=emp_sal+2000; END IF; END LOOP; END;
sal+1000 when job='analyst' then sal+1500 else sal+2000 end) where name = '&empname';
DECLARE
CURSOR emp_cur(name varchar2(50)) IS
SELECT * FROM emp WHERE emp_name=name;
BEGIN
FOR cur IN emp_cur('张三') LOOP
IF cur.emp_job='clerk' THEN
UPDATE emp SET emp_sal=emp_sal+500;
ELSIF cur.emp_job='salesman' THEN
UPDATE emp SET emp_sal=emp_sal+1000;
ELSIF cur.emp_job='analyst' THEN
UPDATE emp SET emp_sal=emp_sal+1500;
ELSE
UPDATE emp SET emp_sal=emp_sal+2000;
END IF;
END LOOP;
END;