Example: Right Outer Join Usage - Teradata VantageCloud Lake

Lake - Working with SQL

Deployment
VantageCloud
Edition
Lake
Product
Teradata VantageCloud Lake
Release Number
Published
February 2025
ft:locale
en-US
ft:lastEdition
2025-11-21
dita:mapPath
jbe1714339405530.ditamap
dita:ditavalPath
pny1626732985837.ditaval
dita:id
jbe1714339405530

The first recursive view definition demonstrates a correct use of a right outer join, which is bold. The usage is valid because the recursive relation in the recursive statement of the view definition is used as the outer relation in the right outer join.

    CREATE RECURSIVE VIEW rec (f1, mycount) AS (
      SELECT a1, 0 AS mycount
      FROM nonrec
    UNION ALL
      SELECT a2, mycount + 1
      FROM  nonrec RIGHT OUTER JOIN rec ON nonrec.a1 = rec.f1 
      WHERE rec.mycount <= 100);

The second recursive view definition demonstrates a non-valid use of a right outer join, which is bold. The usage is not valid because the recursive relation in the recursive statement of the view definition is used as the inner relation in the right outer join.

    CREATE RECURSIVE VIEW rec (f1, mycount) AS (
      SELECT a1, 0 AS mycount
      FROM nonrec
    UNION ALL
      SELECT a2, mycount + 1
      FROM  rec RIGHT OUTER JOIN nonrec ON nonrec.a1 = rec.f1 
      WHERE rec.mycount <= 100);

Right outer joins can be used without restriction in the seed statement of a recursive view definition.