表A的列:code,car,time;
表B的列:code,desc。其中表A是数据表,保存了每个car在不同的time发生的事件code;表B是字典表,保存了每个事件code的描述信息。但表B中保存的code不完整,即假设表A会保存实际发生的100种事件code,但表B中只保存了70种code的desc记录。现在希望通过一次查询得到code,car,time和desc。对每一code,如果表B中存在对应的desc,则将desc一并选出,如果表B中没有对应的记录,则返回空的desc,不知该怎么写。谢谢!

解决方案 »

  1.   


    select A.code,A.car,A.time,nvl(B.desc,'') as desc
    from A,B
    where A.code = B.code(+)
      

  2.   

    select a.*,b.desc from a,b where a.code=b.code(+);
      

  3.   


    select A.code,A.car,A.time,nvl(B.desc,'') as desc
    from A a left join B b on a.code=b.code
      

  4.   


    nvl(B.desc,'')  --如果为空的话可以显示你想要显示的内容
      

  5.   

    或者使用标准SQL99写法
    select a.*,b.desc from a left join b on (a.code=b.code);
      

  6.   

    select A.code,A.car,A.time,desc 
    from A left join B
    on A.code = B.code