Example: Right Outer Join Usage - Advanced SQL Engine - Teradata Database

SQL Data Definition Language Syntax and Examples

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
January 2021
Language
English (United States)
Last Update
2021-01-22
dita:mapPath
ncd1596241368722.ditamap
dita:ditavalPath
hoy1596145193032.ditaval
dita:id
B035-1144
lifecycle
previous
Product Category
Teradata Vantage™

The first recursive view definition demonstrates a correct use of a right outer join, which is highlighted in bold typeface. 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 highlighted in bold typeface. 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.