随笔-28  评论-15  文章-81  trackbacks-0
 1.外部联接"+"按其在"="的左边或右边分左联接和右联接.

    若不带"+"运算符的表中的一个行不直接匹配于带"+"预算符的表中的任何行,则前者的行与后者中的一个空行相匹配并被返回.
  若二者均不带"+",则二者中无法匹配的均被返回.

    利用外部联接"+",可以替代效率十分低下的 not in 运算,大大提高运行速度.
  
   例如:A和表B,B的部分内容包含在A,两个表关联后,要求显示A的所有内容,B不能和A匹配的就用空格显示,则两者的表达为左联接: A=B(+)

2.左右连接的表带有条件时,条件为is null 和 is not null
  SELECT A.ORDSEQ,B.ORDTY,A.RELORD FROM ORDREL A,ORD B
   WHERE A.ORDSEQ = B.ORDSEQ(+)
     AND A.RELORD = 5339
     AND B.ISSUPPLY (+) IS NOT NULL

3.当A表和B表进行左连接时,C因为是B的子表,所以B表也要和C表进行左连接,这样B表没记录时,C表也会没记录,相当于A表也和C表进行了左连接,保证A表的数据都能正常显示
  SELECT A.ORDSEQ,B.ORDTY,A.RELORD FROM ORDREL A,ORD B,ORDITM C
   WHERE A.ORDSEQ = B.ORDSEQ(+)
     AND A.RELORD = 5339
     AND B.ISSUPPLY (+) IS NOT NULL
     AND B.ORDSEQ = C.ORDSEQ

4.和字符串的右连接
  AND RT.TRANSACTION_TYPE (+)= 'RETURN TO VENDOR'
    

posted on 2008-08-28 15:35 谭明 阅读(360) 评论(0)  编辑  收藏 所属分类: Oracle

只有注册用户登录后才能发表评论。


网站导航: