有一张表,t_emp
eid  ename  manager  sex  salary
 01  张三               男    5000
 02  李四     01       女    4000
 03  五二     01       男    3000
 04  赵六               女    3000
 05  刘七     03       男    2000
 06  陈八     04       男    2000
 07  马九     02       男    3000
manager表示所在部门的经理的eid,
要示显示出员工姓名(ename),经理姓名,性别,如果经理姓名为空则显示为无,结果按性别降序排列。用一个SQL语句表示
谢谢 大家,请教高手

解决方案 »

  1.   


    select t.ename 员工姓名,(select tm.ename from t_temp tm where tm.eid=t.manager) 经理,t.sex 性别 from t_temp t
      

  2.   

    使用自连接:
      select t1.eid,t2.ename,t1.sex from t_emp t1, t_emp t2 where t1.eid = t2.manager(+) order by t1.sex desc;
      

  3.   

    select t1.eid,t1.ename、nvl(t2.ename,'无') manage,t1.sex from t_emp t1, t_emp t2 where t1.manager= t2.eid(+) order by t1.sex desc;
      

  4.   

    select t1.eid,t1.ename,nvl(t2.ename,'无') manager,t1.sex from t_emp t1, t_emp t2 where t1.manager= t2.eid(+) order by t1.sex desc;正确答案