SQL Server, объединяющий похожие, но непохожие данные

#sql #sql-server #join #full-outer-join

#sql #sql-сервер #Присоединиться #полное внешнее соединение

Вопрос:

У меня есть две таблицы данных, которые мне нужно объединить в одну таблицу. UNION ALL не работает, потому что мне нужно иметь одну строку ( SN ) со всей связанной информацией, а не дублировать SN ее. Примеры двух таблиц и ожидаемый результат приведены ниже. Любая помощь была бы оценена.

 Table 1
SN  Reading
 1. 12
 2. 14
 3. 12
 4. 15
 5. 11

Table 2 
SN  Reading
 1. 75 
 2. 74
 4. 74
 5. 74
 6. 75
  

Объединенная таблица (1 и 2)

 SN  R1    R2
 1. 12    75
 2. 14    74
 3. 12
 4. 15    74
 5. 11    74
 6.       75
  

Комментарии:

1. Посмотрите на FULL OUTER JOIN

Ответ №1:

Вы можете использовать FULL JOIN для объединения таблиц желаемым способом и COALESCE для получения первого ненулевого значения SN из обеих таблиц :

 SELECT COALESCE(t1.SN, t2.SN)
     , t1.R1
     , t2.R2 
FROM table1 t1 FULL JOIN table2 t2 ON t1.SN = t2.SN