Вы можете удалить данные разными способами. Я мог бы предложить:
delete from t
where t.col1 > t.col2 or
exists (select 1
from t t2
where t2.col1 = t.col2 and t2.col2 = t.col1
);
Тогда. , , более важная вещь. Предотвратите это в будущем с помощью уникального ограничения / индекса:
create unique index unq_t_col1_col2 on
t(least(col1, col2), greatest(col1, col2));
На самом деле, я бы исправил данные так col1 < col2
всегда и добавил бы ограничения:
unique (col1, col2),
check (col1 < col2)
Ничего вроде поддержания чистоты данных для обеспечения безопасности вашей базы данных.