What is the "old style" syntax for joins in T-Sql?

I am rewriting a bunch of old, poorly written Oracle queries against the new (-er) Sql Server 2008 environment. They use the old school Oracle syntax like

select <whatever>
from Table1, Table2, Table3
where Table1.T1ID = Table2.T2ID      -- old Oracle inner join
and   Table2.T3ID = Table3.T3ID (+)  -- old Oracle left join (I think)

      

Except for a lot more complicated. There are a lot of mixed associations and a lot of nesting, and a lot of opinions formed on the views going on in these things. It's not beautiful. The data is also fragmented between the two servers, making testing challenging.

I figured the easiest way to replicate is to make the queries as similar as possible to Sql Server (that is, using the same join style) and then do a massive cleanup after I'm sure they both do the same thing. and I have no place elsewhere (yes, I have the compatibility mode temporarily set to support old joins).

I know the "old" syntax for inner join in T-Sql is

select <whatever>
from T1, T2
where T1.ID = T2.ID

      

but what is the "old" syntax for left outer join or right outer join?

+3


source to share


1 answer


From the TechNet documentation (on SQL Server 2000, so keep in mind this may not be supported anymore!), You need to use *=

instead (+)

, as Oracle does:



select <whatever>
from T1, T2
where T1.ID *= T2.ID

      

+2


source







All Articles