CREATE GLOBAL TEMPORARY TABLE Test
(
Id int,
Origin varchar(100)
)
INSERT INTO #Test
SELECT 1, 'ROME' FROM DUAL UNION ALL
SELECT 1, 'ROME' FROM DUAL UNION ALL
SELECT 2, 'ROME' FROM DUAL UNION ALL
SELECT 2, 'LODI' FROM DUAL UNION ALL
SELECT 3, 'ASTI' FROM DUAL UNION ALL
SELECT 4, 'PISA' FROM DUAL UNION ALL
SELECT 4, 'BARI'
SELECT T.Id, T.Origin FROM #Test T
JOIN Test T2 ON T.Id = T2.Id
WHERE T.Origin = 'ROME' AND T2.Origin != 'ROME' OR T.Origin != 'ROME' AND T2.Origin = 'ROME'
В комментарии был задан вопрос, можно ли это написать более обобщенно.Это невозможно, иначе мы не получили бы правильные результаты (PISA и BARI отключили бы WHERE на Table1.Origin! = Table2.Origin)