Объединение 2 наборов данных с одинаковыми столбцами, но разными значениями - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть 2 набора данных: Таблица1 и Таблица2

Таблица1 выглядит следующим образом:

Individual_ID    Code1    Code 2  
1234             1        2  
2345             NULL     NULL  

Таблица2 выглядит следующим образом:

Individual_ID    Code1    Code 2  
1234             NULL     NULL   
2345             1        2  

Я хочу объединить результатчтобы выглядеть так:

Individual_ID    Code1    Code 2  
1234             1        2  
2345             1        2  

По сути, я пытаюсь объединить несколько таблиц, имеющих одинаковый список идентификаторов и одинаковые заголовки столбцов, но данные в столбцах, связанных с идентификаторамиотличается в каждой из таблиц, которые я пытаюсь собрать

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Я думаю, что вы хотите join и coalesce():

select t1.Individual_ID, coalesce(t1.code1, t2.code1) as code1,
       coalesce(t1.code2, t2.code2) as code2
from table1 t1 join
     table2 t2
     on t1.Individual_ID = t2.Individual_ID;
0 голосов
/ 13 февраля 2019

Один вариант будет использовать coalesce

select t1.Individual_ID, 
       coalesce(t1.code1,t2.code1) as code1, 
       coalesce(t1.code2,t2.code2) as code2
  from table1 t1 
  join table2 t2 on t1.Individual_ID = t2.Individual_ID

Редактировать: Вы можете сделать это для пяти таблиц с тем же сценарием, что и

select t1.Individual_ID, 
       coalesce(t1.code1,t2.code1,t3.code1,t4.code1,t5.code1) as code1, 
       coalesce(t1.code2,t2.code2,t3.code2,t4.code2,t5.code2) as code2
  from table1 t1 
  join table2 t2 on t1.Individual_ID = t2.Individual_ID
  join table3 t3 on t1.Individual_ID = t3.Individual_ID
  join table4 t4 on t1.Individual_ID = t4.Individual_ID
  join table5 t5 on t1.Individual_ID = t5.Individual_ID
0 голосов
/ 13 февраля 2019

Вы можете использовать UNION ALL:

SELECT Individual_ID, Code1, Code2  
FROM table t1
WHERE Code1 IS NOT NULL AND Code2 IS NOT NULL
UNION ALL
SELECT Individual_ID, Code1, Code2  
FROM table t2
WHERE Code1 IS NOT NULL AND Code2 IS NOT NULL;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...