Search notes:

Oracle: Lateral inline views

A subquery (or more accurately an inline view) can be marked with the lateral keyword which turns it into a lateral inline view.
Lateral inline views were introduced with Oracle 12c.
create table tq84_a (
  id   number          primary key,
  txt  varchar2(10) 
);

create table tq84_b (
  id_a number          references tq84_a,
  txt  varchar2(10) 
);

insert into tq84_a values (0, 'zero' );
insert into tq84_a values (1, 'one'  );
insert into tq84_a values (2, 'two'  );
insert into tq84_a values (3, 'three');

insert into tq84_b values (1, '.'    );

insert into tq84_b values (2, '-'    );
insert into tq84_b values (2, '--'   );

insert into tq84_b values (3, '*'    );
insert into tq84_b values (3, '**'   );
insert into tq84_b values (3, '***'  );


insert into tq84_b values (null,'<>');

select
  a.id,
  a.txt   txt_a,
  b.txt   txt_b
from
  tq84_a a,
  lateral(select id, b.txt
            from tq84_b b
           where b.id_a = a.id) b;


drop table tq84_b;
drop table tq84_a;
Github repository Oracle-Patterns, path: /SQL/select/12c/lateral.sql

See also

Setting events 22829.
cross apply

Index