代码之家  ›  专栏  ›  技术社区  ›  mandroid

(+)在Oracle SQL中做什么?

  •  5
  • mandroid  · 技术社区  · 15 年前

    我使用oracle sql developer查询oracle db(不确定它是哪个版本),我将使用我为crystal报表生成的sql。以前开发人员编写的许多报告都没有使用连接关键字来进行连接(因此我对连接关键字也不太熟悉)。

    他们所做的许多连接都是在where语句中进行的。我会注意到这样的事情。

    Select * From TableA, TableB WHERE TableA.PrimaryKey(+) = TableB.ForeignKey
    

    我的问题是关于(+)的。它有什么用途?我如何在代码中使用它?

    4 回复  |  直到 10 年前
        1
  •  8
  •   Community CDub    8 年前
        2
  •  8
  •   Rory O'Kane Erce    12 年前

    它表示一个“右外部连接”(因为 = 在…的右边 + )

    SELECT *
    FROM TableA, TableB
    WHERE TableA.PrimaryKey(+) = TableB.ForeignKey
    

    相当于

    SELECT *
    FROM TableA
    RIGHT OUTER JOIN TableB
      ON (TableA.PrimaryKey = TableB.ForeignKey)
    
        3
  •  3
  •   softveda    15 年前

    右外连接

        4
  •  0
  •   pravin kottawar    10 年前

    (+)用于在Oracle中执行右外部联接 右外部联接是允许您指定联接子句的联接操作之一 详情 http://docs.oracle.com/javadb/10.8.3.0/ref/rrefsqlj57522.html