Ако това е само за лечение на (B, A)
като дубликат на (A, B)
и не ви интересува особено дали върнатият ред ще бъде (A, B)
или (B, A)
, можете да направите нещо подобно:
SELECT DISTINCT
CASE WHEN BUG_ID > LINKED_BUG_ID THEN LINKED_BUG_ID ELSE BUG_ID AS BUG_ID,
CASE WHEN BUG_ID > LINKED_BUG_ID THEN BUG_ID ELSE LINKED_BUG_ID AS LINKED_BUG_ID
FROM MY_BUG_LINKS;
Тоест, ако BUG_ID
има по-голяма стойност от LINKED_BIG_ID
, заявката разменя двата идентификатора, в противен случай стойностите се връщат непроменени. Следователно (A, B)
и (B, A)
винаги създава дублирани редове (и двата ще бъдат или (A, B)
или (B, A)
) и DISTINCT
гарантира, че няма такъв в крайния резултат.