接收一个雇员名,判断他的job,根据job不同,为他增加相应的sal(用for循环来实现自动加薪)
clerk     +500
salesman  +1000
analyst +1500
otherwise +2000

解决方案 »

  1.   

    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';
      

  2.   

    你的意思是不是有一张员工表,现在如果给定一个员工名字,将所有同名的员工的工资信息给更新一下?如果是的话,可以如下,不过我的猜测好像没有什么意义!
    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;
      

  3.   

    到忘了,update不能直接使用,要加execute immediate!