Below is simple example, I need in one row display value from different table.
eg.
Create table table_1 ( id number, name varchar2(100), emp varchar2(100) , num_1 number, num_2 number, num_3 number, num_4 number ); Create table table_2 ( id number, emp varchar2(100), num_1 number, num_2 number, num_3 number, num_4 number ); Insert into table_1 (id,name,emp,num_1,num_2,num_3,num_4) values (1,'AUDI','MARC',8,8,null,null); Insert into table_2 (id,emp,num_1,num_2,num_3,num_4) values (2,'MARC',null,null,7,7);
need resaults as:
name emp num_1 num_2 num_3 num_4 ---------------------------------------- AUDI MARC 8 8 7 7
Advertisement
Answer
With sample data you posted, that’s join
with coalesce
.
SQL> SELECT a.name, 2 a.emp, 3 COALESCE (a.num_1, b.num_1) num_1, 4 COALESCE (a.num_2, b.num_2) num_2, 5 COALESCE (a.num_3, b.num_3) num_3, 6 COALESCE (a.num_4, b.num_4) num_4 7 FROM table_1 a JOIN table_2 b ON a.emp = b.emp; NAME EMP NUM_1 NUM_2 NUM_3 NUM_4 ------ ------ ---------- ---------- ---------- ---------- AUDI MARC 8 8 7 7 SQL>