用子查询的方法查找所有收入在2500以下的雇员情况
use yggl
select*
from employees
where employeeid=
         (select employeeid
          from salary
          where income < 2500
)
go
提示错误:子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
要怎么修改?
哪位高手告诉一下。
多谢!!

解决方案 »

  1.   

    把等号改成in
    use yggl
    select*
    from employees
    where employeeid in
             (select employeeid
              from salary
              where income < 2500
    )
    go
    等号要求子查询返回一个值,而你的子查询中返回的是所有income < 2500的员工号集合,所以出错。
      

  2.   

    use yggl
    select*
    from employees
    where employeeid in
             (select employeeid
              from salary
              where income < 2500
    )
    go
      

  3.   

    use yggl
    select*
    from employees
    where employeeid in
             (select employeeid
              from salary
              where income < 2500
    )
    go
      

  4.   

    --------------------------------
    说明你的select 子查询返回的结果不只一个,where employeeid=无法匹配