Oracle Rdb supports the SQL Database Language Standard syntax
for performing outer join between two or more tables, namely
the LEFT, RIGHT, and FULL OUTER JOIN clauses. Oracle Rdb also
supports alternative syntax and semantics that conform to
those available in Oracle RDMS SQL language to enhance the
compatibility between these two products. The special operator
(+) can be placed in the WHERE clause to instruct SQL to join
tables using outer join semantics.
An outer join extends the result of a simple join. An outer
join returns all rows that satisfy the join condition and those
rows from one table for which no rows from the other satisfy the
join condition. Such rows are not returned by a simple join. To
write a query that performs an outer join of tables A and B and
returns all rows from A, apply the outer join operator (+) to all
columns of B in the join condition. For all rows in A that have
no matching rows in B, Oracle Rdb returns NULL for any select
list expressions containing columns of B.
Outer join queries are subject to the following rules and
restrictions:
o The (+) operator can appear only in the WHERE clause and can
be applied only to a column of a table or view.
o If A and B are joined by multiple join conditions, you must
use the (+) operator in all of these conditions. If you do
not, Oracle Rdb will return only the rows resulting from a
simple join, but without a warning or error to advise you that
you do not have the results of an outer join.
o The (+) operator can be applied only to a column, not to an
arbitrary expression. However, an arbitrary expression can
contain a column marked with the (+) operator.
o A condition containing the (+) operator cannot be combined
with another condition using the OR logical operator.
o A condition cannot use the IN comparison operator to compare a
column marked with the (+) operator with an expression.
o A condition cannot compare any column marked with the (+)
operator with a subquery.
If the WHERE clause contains a condition that compares a column
from table B with a constant, the (+) operator must be applied to
the column so that Oracle Rdb returns the rows from table A for
which it has generated NULLs for this column. Otherwise Oracle
Rdb will return only the results of a simple join.
In a query that performs outer joins of more than two pairs
of tables, a single table can be the NULL-generated table for
only one other table. For this reason, you cannot apply the (+)
operator to columns of B in the join condition for A and B and
the join condition for B and C.
Additional Information:
explode
extract