select ename from tab2 where (empno,ename) = (select empno,ename from tab3 where deptno=10);
单行子查询返回多个行;下面这确可以
with tab2 as(select 2 empno,'zhang' ename  from dual
             union all
             select 3 empno,'lise' ename  from dual)
SELECT  ename FROM tab2 WHERE (empno,ename) = ( 
with tab3 as (select 3 empno,'lise' ename, 604  dname from dual )
SELECT empno,ename FROM  tab3  WHERE  dname = 604)

解决方案 »

  1.   

    改为:
    select ename from tab2 where (empno,ename) = (select max(empno),max(ename)from tab3 where deptno=10);
      

  2.   

    改为:
    select ename from tab2 where (empno,ename) = (select max(empno),max(ename)from tab3 where deptno=10);
    我不是要MAX或MIN怎么办?
      

  3.   

    这种格式不能行?(empno,ename) = (select empno,ename from tab3 where deptno=10) 这里面的值全部取出来
     
    要and
     empno=(select empno from tab3 where deptno=10) and ename=(select empno from tab3 where deptno=10)
      

  4.   


    select ename from tab2 where (empno,ename) in (select empno,ename from tab3 where deptno=10);