Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Re: What does this mean: Outer Join (+) on a Value?
> I thought the (+) syntax was only used to outer-join two tables, like
> this:
>
> WHERE invoice.customer_num (+) = customer.customer_num
>
> Today I came across some code that looks like this:
>
> WHERE invoice.customer_num (+) = customer.customer_num
> AND invoice.begin_date (+) <= trunc(sysdate)
> AND invoice.end_date (+) >= trunc(sysdate)
>
> Aren't the second and third occurances of (+) unnecessary (or even
> meaningless)? I can find no mention of this usage anywhere. Is this
> an idiom left-over from earlier versions of Oracle (I'm at 9i)? Or
> maybe from another database vendor's SQL implementation?
>
> (Interestingly, although the rows returned are the same with or
> without the extra (+)'s, the explain plans are different - having the
> extra (+)'s makes the query much faster... maybe that's why they did
> it...)
I don't know if it's a totally accurate response, but I think of it as an
easier way to write
(invoice.begin_date IS NULL OR invoice.begin_date <= trunc(sysdate)
Received on Fri Jan 09 2004 - 14:21:53 CST
![]() |
![]() |