这样:
select distinct A01.pers_code ,A01.A0101,A01.A0104 ,A01.A0117 ,A01.A0141 ,A01.A0157A ,A01.A0217,A02.a0219  from A01,A02 
where A01.pers_code=A02.pers_code(+) 
  and A01.pers_code ='05' 
  And A02.a0219 ='11'

解决方案 »

  1.   

    select distinct A01.pers_code ,A01.A0101,A01.A0104 ,A01.A0117 ,A01.A0141 ,A01.A0157A ,A01.A0217,A02.a0219  from A01,A02 
    where A01.pers_code=A02.pers_code(+) 
      and A01.pers_code ='05' 
      And A02.a0219 ='11'查不到值 是有错误还是没有符合条件的记录
    注意字段类型匹配
      

  2.   

    问题找到了,其实select distinct(A01.pers_code) ,A01.A0101,A01.A0104 ,A01.A0117 ,A01.A0141 ,A01.A0157A ,A01.A0217,A02.a0219  from A01 left outer join A02 on A01.pers_code=A02.pers_code where A01.pers_code ='05' And A02.a0219 ='11'
    这样也可以执行,但是我没成功的原因是因为数据类型我现在就不懂了,如果是char类型,数据就能用这条语句执行找到,但是如果用varchar2就不行了,这是为什么???
      

  3.   

    left outer join  on 好像是标准的sql,应该都可以的
      

  4.   

    两个表关联项的数据类型要一致,否则可能因为编码原因该相等的就不等了。
    char 是按字节为单位,varchar2按双字节为单位。
      

  5.   

    他们两者不相同,如:
    SQL> set serveroutput on
    SQL> declare
      2  a char(10):='111';
      3  b varchar2(10):='111';
      4  begin
      5  if a=b then
      6  dbms_output.put_line('相等');
      7  else
      8  dbms_output.put_line('不相等');
      9  end if;
     10  end;
     11  /
    不相等PL/SQL procedure successfully completedchar是不去掉空格的数据类型
    varchar2去掉空格的数据类型