Используйте само полное внешнее соединение и добавьте некоторый тип последовательности заказа или первичный ключ.И, пожалуйста, попробуйте подготовить тестовые данные в следующий раз, чтобы сэкономить время, набрав:
WITH test_data AS
(
SELECT 1 row_seq, 'P1' src_data, '2018-01-01' src_date, 'D2' dst_data, 123 data_key FROM dual
UNION ALL
SELECT 2, 'D2', '2018-01-02', 'D3', 123 FROM dual
UNION ALL
SELECT 3, 'D3', '2018-01-03', 'D4', 123 FROM dual
)
SELECT NVL(a.src_data, b.dst_data) all_data
FROM test_data a FULL OUTER JOIN test_data b ON a.src_data = b.dst_data
ORDER BY a.row_seq
/
Вывод - вы можете добавить остальные столбцы:
ALL_DATA
---------
P1
D2
D3
D4