下面的代碼工作中的Oracle版本> = 9I中顯示this fiddle如何指定可選OUTER Oracle 8i中JOIN條件
SELECT T1.col1, T1.col3,count(T2.col1)
FROM T1
LEFT JOIN T2
ON T1.col3 = T2.col3
AND ',' || T2.col2 || ',' like '%,' || T1.col1 || ',%'
GROUP BY T1.col1, T1.col3
但是基於Oracle Left Outer Join文章看起來像LEFT JOIN
是Oracle 8i
不可用 - 和不幸的是我在8i工作。
對於=
操作我知道等效代碼
SELECT T1.col1, T1.col3
FROM T1
, T2
WHERE T1.col3 = T2.col3 (+)
--AND ',' || T2.col2 || ',' like '%,' || T1.col1 || ',%'
問題
但我們如何可以指定OUTER JOIN條件的LIKE
操作。
注意:我相信,沒有(+)
,它將表現爲該列的INNER JOIN。
UPDATE
下面的查詢提供了ORA-00920: invalid relational operator
錯誤
SELECT T1.col1, T1.col3,count(T2.col1)
FROM T1
,T2
WHERE T1.col3 = T2.col3(+)
AND (',' || T2.col2 || ',') LIKE ('%,' || T1.col1 || ',%')(+)
GROUP BY T1.col1, T1.col3
工作代碼參見[第一小提琴(HTTP結果:// sqlfiddle。 com /#!4/1ae4a/1)和[Second Fiddle](http://sqlfiddle.com/#!4/1ae4a/4)。我需要列出T1中存在的所有記錄(不管它們是否存在於T2中)。 – Lijo
我認爲Oracle 8i是在1998年基於[Oracle發佈日期](http://www.dba-oracle.com/t_release_dates.htm)發佈的,它應該足以滿足我的要求。 – Lijo
Working Code - http://sqlfiddle.com/#!4/1ae4a/10 – Lijo