Se si tratta semplicemente di trattare (B, A)
come duplicato di (A, B)
e non ti interessa particolarmente se la riga restituita sarà (A, B)
o (B, A)
, potresti fare qualcosa del genere:
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;
Cioè, se BUG_ID
ha un valore maggiore di LINKED_BIG_ID
, la query scambia i due ID, altrimenti i valori vengono restituiti invariati. Pertanto, (A, B)
e (B, A)
producono sempre righe duplicate (entrambi sarebbero (A, B)
o (B, A)
), e DISTINCT
assicura che non ce ne siano nel risultato finale.