2012-06-12 73 views
3

在Oracle中,我有:Oracle和SQL Server選擇(+),相當於

SELECT t2.Regkood, t2.naitatel, t2.naitafaks, t3.lahtiolekuaeg, t1.* 
FROM table1 t1, table2 t2, table3 t3 
WHERE t1.client = t2.client AND t1.client = t3.client(+) AND t1.client = 414246 

如何得到相同的SQL Server?

感謝

+1

:使用'LEFT OUTER加入'語法 –

+5

你不應該在Oracle中使用'(+)'。使用標準的'JOIN'語法。 –

回答

5
SELECT t2.Regkood, 
     t2.naitatel, 
     t2.naitafaks, 
     t3.lahtiolekuaeg, 
     t1.* 
FROM table1 t1 
     INNER JOIN table2 t2 
       ON t1.client = t2.client 
     LEFT JOIN table3 t3 
       ON t1.client = t3.client 
WHERE t1.client = 414246 

一些樣本,以瞭解加入:

LEFT OUTER JOIN在ORACLE

SELECT * 
FROM A, B 
WHERE A.column = B.column(+) 

RIGHT OUTER JOIN在Oracle

SELECT * 
FROM A, B 
WHERE B.column(+) = A.column 
+0

我認爲這應該是一個左連接而不是正確的連接 –

+0

@Romil:出於興趣,你能解釋一下在Oracle中+符號代表什麼? – praveen

+0

在以前版本的oracle(我們使用+)和sql server(我們使用*)來表示左或右連接。 –