1、编写PL/SQL程序,按部门编号从 小到大的顺序输出雇员名字、工资与平均工资的差
2、编写PL/SQL程序,为所有雇员增加工资,工资在1000以内的增加30%,工资在1000到2000之间的增加20%,2000以上的增加10%

解决方案 »

  1.   

    1.
    SELECT 部门编号,雇员名字,工资-AVG(工资)
      FROM table_name
    ORDER BY 部门编号;2.
    UPDATE table_name
       SET 工资 = (CASE WHEN 工资<1000 THEN 工资*1.3 
                      WHEN 工资 BETWEEN 1000 AND 2000 THEN 工资*1.2
                      ELSE 工资*1.1)
      

  2.   

    少了个END2.
    UPDATE table_name
       SET 工资 = (CASE WHEN 工资<1000 THEN 工资*1.3 
                      WHEN 工资 BETWEEN 1000 AND 2000 THEN 工资*1.2
                      ELSE 工资*1.1 END)
      

  3.   

    SORRY,oracle要这么表达.1.
    SELECT 部门编号,雇员名字,工资-(SELECT AVG(工资) FROM table_name) 工资差
      FROM table_name
    ORDER BY 部门编号;
      

  4.   

    1.
    select deptno,ename,sal,(sal-(select avg(sal) from emp)) new_sal
    from emp
    group by deptno,ename,sal
    order by deptno;2.
    select ename,sal,
    case
    when sal<1000 then sal*1.3
    when sal>=1000 and sal<=2000 then sal*1.2
    when sal>2000 then sal*1.1
    end new_sal
    from emp;