Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.misc -> Re: What does this mean: Outer Join (+) on a Value?

Re: What does this mean: Outer Join (+) on a Value?

From: Erik <no_at_spam.com>
Date: Fri, 9 Jan 2004 21:21:53 +0100
Message-ID: <btn2j8$hu5$1@news.lth.se>


> 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

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US