查询除掉名字中含有K的员工后,员工人数大于3的各种工作,按工作降序排列,这个语句我自己写的是select * from emp where ename  <> '%K%'K from (select job , count(*) from emp group by job having count (*)>3);这是哪里出错了???

解决方案 »

  1.   

    SQL语法不对首先ename  <> '%K%' 写的就不对,模糊查询要用LIKE,应该改成ename not like '%K%'
    其次两个查询条件之间要用and或者or, 
    你写的ename  <> '%K%'K from (select job , count(*) from emp group by job having count (*)>3)完全不对
    应该是
    where  ename not like '%K%'
        and job in (select job 
                              from (select job , count(*) from emp group by job having count (*)>3))
    再次没有排序完整的写法
    select * from emp
    where  ename not like '%K%'
        and job in (select job 
                              from (select job , count(*) 
                                         from emp 
                                        group by job 
                                        having count (*)>3))
      order by job desc建议好好打一下基础