2011-03-14 26 views
1

可能重複:
Oracle 「(+)」 OperatorSanity Check:Oracle數據庫WHERE子句中的(+)運算符?

所以我得到了一個腳本如下:

SELECT BLAH 
    FROM A_TABLE T1, A_TABLE T2, A_TABLE T3 
WHERE T2.FIELD_1(+) = T1.FIELD_1 
    AND T3.FIELD_1(+) = T2.FIELD_1 
    ... etc a few more AND clauses that do that same thing 

我需要這個腳本MSSQL Server轉換,但我沒有線索這個操作員在做什麼。這可能是某種錯字嗎?

+3

I *認爲*這是Oracle的說話左連接中,'(+)'說明你即使他們這樣做不是所有T2S匹配T1。我可能會倒退。 – 2011-03-14 21:34:15

+0

[Oracle「(+)」Operator]的可能重複(http://stackoverflow.com/questions/4020786/oracle-operator)。另外:http://stackoverflow.com/questions/2425960/oracle-old-joins-a-tool-script-for-conversion – 2011-03-15 00:44:37

回答

7

這是用於外連接的舊Oracle語法。您應該使用ANSI連接語法代替:

SELECT BLAH 
    FROM A_TABLE T1 
    LEFT JOIN A_TABLE T2 ON T2.FIELD_1 = T1.FIELD_1 
    LEFT JOIN A_TABLE T3 ON T3.FIELD_1 = T2.FIELD_1 
WHERE ... etc 
相關問題