【问题标题】:Rewrite join to ANSI syntax将连接重写为 ANSI 语法
【发布时间】:2013-04-09 08:37:05
【问题描述】:
select ... fields
from table a, b
where ... conditions
and a.timeload between b.timestop(+) and b.timego(+)

我确实了解 between 运算符的工作原理,并且我知道这里的 + 运算符代表 left join。如何使用 ANSI 连接标准重写它?

【问题讨论】:

  • 提示:如果没有必要,不要使用 ANSI 标准。非常错误。你不会看到它的到来!您真正需要它的唯一时间是 FULL OUTER JOIN。
  • 是的,我听说过。但是我还没有习惯 Oracle joins 表示法。
  • 我知道。我不得不在我的办公室张贴一张海报来提醒我(+) 标志应该在哪里......(这是你想要空值的地方)。祝你好运!

标签: sql oracle join


【解决方案1】:

使用LEFT OUTER JOIN 代替+ 运算符。

对于您的查询,它是a LEFT OUTER JOIN b:

select ... fields
from table a
LEFT OUTER JOIN b ON a.timeload between b.timestop and b.timego
where ... conditions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 2015-11-06
    • 2010-11-02
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    相关资源
    最近更新 更多