0

I have three tables

table_1_Top_Performers:
col_1_ID | col_2_FirstName | col_3_LastName    
1          Johny               Smith
2          John                Que
3          Kristina            Zimmerman

table_2_Mid_Performers:
col_1_ID | col_2_FirstName | col_3_LastName
1          Stewart            Joe
2          Amy                Green
3          John               Smithsonian

table_3_Bottom_Performers:
col_1_ID | col_2_FirstName | col_3_LastName    
1          Noah              Cantana
2          Abe               Jackson
3          Smith             Markson

And I the output I'm looking for is this:

col_1_ID | col_2_FirstName | col_3_LastName    
1          Noah              Cantana
2          Abe               Jackson
3          Smith             Markson
1          Stewart           Joe
2          Amy               Green
3          John              Smithsonian
1          Johny             Smith
2          John              Que
3          Kristina          Zimmerman

Could these be achieved by a simple SQL statement? or even a PL/SQL call?

jpw
  • 44,361
  • 6
  • 66
  • 86

1 Answers1

1

You can generate your output with UNION ALL

create table top_performers (id int,firstname nvarchar(30),lastname nvarchar(30));    
insert into top_performers(id,firstname,lastname)
values (1,'Johny','Smith'),(2,'John','Que'),(3,'Kristina','Zimmerman');

create table mid_performers (id int,firstname nvarchar(30),lastname nvarchar(30));    
insert into mid_performers(id,firstname,lastname)
values (1,'Stewart','Joe'),(2,'Amy','Green'),(3,'John','Smith');

create table bottom_performers (id int,firstname nvarchar(30),lastname nvarchar(30));
insert into bottom_performers(id,firstname,lastname)
values (1,'Noah','Cantana'),(2,'Abe','Jackson'),(3,'Smith','Markson');

select *,'top' from top_performers
union all
select *,'mid' from mid_performers
union all 
select *,'bottom' from bottom_performers

OUTPUT:

id  firstname   lastname    (No column name)    
1   Johny       Smith        top    
2   John        Que          top    
3   Kristina    Zimmerman    top    
1   Stewart     Joe          mid    
2   Amy         Green        mid   
3   John        Smith        mid   
1   Noah        Cantana      bottom    
2   Abe         Jackson      bottom
3   Smith       Markson      bottom
jpw
  • 44,361
  • 6
  • 66
  • 86
Neil
  • 66
  • 1
  • 6