急........请教以下oracle 查询语句,请问在最后的条件中添加(+)是什么意思?下列语句转化为sql server 的查询语句应当如何?
SELECT 
      B.SEQ,A.colm_no,A.colm_nm, A.colm_ennm,A.chng_posb_yn,A.mng_item_yn, B.scrn__yn,
      DECODE(B.SEQ, NULL, 'N', 'Y') SHOW_ITEM_YN  
FROM  ( SELECT colm_no,colm_nm, colm_ennm,chng_posb_yn, mng_item_yn  , COMP_CD  
        FROM   tcl_list_colm_bnk WHERE  ORG_C='001') A,
      ( SELECT a.seq,              a.colm_no, b.colm_nm,b.colm_ennm,b.chng_posb_yn chng_posb_yn,
        b.mng_item_yn mng_item_yn, scrn__yn 
        FROM tcl_list_knby_colm a, tcl_list_colm_bnk b  
        WHERE a.org_c = '001'   AND a.list_kind_c = '21'AND a.org_c = b.org_c   AND a.colm_no = b.colm_no       ) B    
 WHERE  A.colm_no = B.colm_no(+) AND    A.COMP_CD='MP01' Order by  seq

解决方案 »

  1.   

    (+)表示有外联接,看放在哪边,左边就是左连接,右边就是右连接
    等同于left join 或者right join
      

  2.   

    加(+)就是联接查询.
    create table a3(a int,b varchar2(10))
    create table b3(a int,b varchar2(10))insert into a3 values(1,'aa');
    insert into a3 values(2,'bb');
    insert into a3 values(3,'cc');
    insert into b3 values(1,'aa');select a.a,a.b,b.a,b.b 
    from a3 a,b3 b
    where a.a=b.a(+)select a.a,a.b,b.a,b.b 
    from a3 a
    left join b3 b on a.a=b.a你看一下这两个的结果能更清楚些
      

  3.   

    (+)在 where子句中,为不包括匹配行的记录创建NULL行,放在引用不完整的连接条件之后。(+)放右边  B对于A缺少对应的行  那就在B中设NULL
      

  4.   

    楼上说的是
    (+)表示有外联接,看放在哪边.
    好好看看select 查询 
      

  5.   

    (+) 在 oracle 中 是 等次,和非等次连接的又一种形式。又叫 外连接。
    简单说,相当于 left join 和 right join 。学SQL SERVER 的可能不太明白这个问题。
    加号 放左是 左连接,右边 是右连接。。
    。建议楼主 学习一下 oracle 基本语法。
    因为 实际上 oracle 的语法,有某些方面 和sqlserver中的语法还是有区别。
    例如:关键字。  substring (sql 中是这样),substr (oracle中就是这样了。)实际上两者是一样的功能。
      

  6.   

    在ORACLE里不要使用SQL的语法,虽然ORACLE支持标准SQL写法,
    但发现解析的执行计划非常的不一样,速度慢死了.