Вы можете присоединиться и сравнить, используя внешнее соединение, а затем использовать COALESCE, чтобы предпочесть T2 вместо T1.
Чтобы сохранить уникальный ключ и предположить, что все ваши идентификаторы положительны, вы можете сделать идентификатор одной таблицы отрицательным.
SELECT
COALESCE(t2.id, -t1.id) AS id,
COALESCE(t2.Column1, t1.Column1) AS Column1,
COALESCE(t2.Column2, t1.Column2) AS Column2
FROM
Table1 AS t1
FULL OUTER JOIN
Table2 AS t2
ON t1.Column1 = t2.Column2
AND t1.Column2 = t2.Column2
WHERE
COALESCE(t2.Column3, t1.Column3) = 'String'
EDIT:
Для более сложных правил выбора таблицы с точностью можно использовать операторы CASE ...
(Это то же самое, что и выше, но может быть изменено для других правил вероятности.)
SELECT
CASE WHEN t2.id IS NULL THEN -t1.id ELSE t2.id END AS id,
CASE WHEN t2.id IS NULL THEN t1.Column1 ELSE t2.Column1 END AS Column1,
CASE WHEN t2.id IS NULL THEN t1.Column2 ELSE t2.Column2 END AS Column2
FROM
Table1 AS t1
FULL OUTER JOIN
Table2 AS t2
ON t1.Column1 = t2.Column2
AND t1.Column2 = t2.Column2
WHERE
COALESCE(t2.Column3, t1.Column3) = 'String'