健全性检查:Oracle DB WHERE 子句中的 (+) 运算符?

发布于 2024-10-22 02:18:49 字数 452 浏览 7 评论 0原文

可能的重复:
Oracle“(+)”运算符

因此,我得到了一个包含以下内容的脚本:

SELECT BLAH
  FROM A_TABLE T1, A_TABLE T2, A_TABLE T3 
 WHERE T2.FIELD_1(+) = T1.FIELD_1
   AND T3.FIELD_1(+) = T2.FIELD_1
   ... etc a few more AND clauses that do that same thing

我需要将此脚本转换为MSSQL Server,但我不知道这个操作员在做什么。这有可能是某种打字错误吗?

Possible Duplicate:
Oracle “(+)” Operator

So I was given a script with the following:

SELECT BLAH
  FROM A_TABLE T1, A_TABLE T2, A_TABLE T3 
 WHERE T2.FIELD_1(+) = T1.FIELD_1
   AND T3.FIELD_1(+) = T2.FIELD_1
   ... etc a few more AND clauses that do that same thing

I need to convert this script to MSSQL Server but I have no clue what this operator is doing. Is it possible that this is some kind of typo?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我三岁 2024-10-29 02:18:49

这是旧的 Oracle 外连接语法。您应该改用 ANSI 连接语法:

SELECT BLAH
  FROM A_TABLE T1
  LEFT JOIN A_TABLE T2 ON T2.FIELD_1 = T1.FIELD_1
  LEFT JOIN A_TABLE T3 ON T3.FIELD_1 = T2.FIELD_1
 WHERE ... etc

That's the old Oracle syntax for outer joins. You should use the ANSI join syntax instead:

SELECT BLAH
  FROM A_TABLE T1
  LEFT JOIN A_TABLE T2 ON T2.FIELD_1 = T1.FIELD_1
  LEFT JOIN A_TABLE T3 ON T3.FIELD_1 = T2.FIELD_1
 WHERE ... etc
蹲在坟头点根烟 2024-10-29 02:18:49

这是 LEFT JOIN 的 Oracle 表示法。

这意味着

SELECT BLAH
  FROM A_TABLE T1
  LEFT JOIN A_TABLE T2 ON T2.FIELD_1 = T1.FIELD_1
  LEFT JOIN A_TABLE T3 ON T3.FIELD_1 = T2.FIELD_1
   ... etc a few more AND clauses that do that same thing

(+) 放在可选的一侧。另请阅读:

It is the Oracle notation for LEFT JOIN.

It means

SELECT BLAH
  FROM A_TABLE T1
  LEFT JOIN A_TABLE T2 ON T2.FIELD_1 = T1.FIELD_1
  LEFT JOIN A_TABLE T3 ON T3.FIELD_1 = T2.FIELD_1
   ... etc a few more AND clauses that do that same thing

The (+) is put against the optional side. Read also:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文