Jika ini hanya tentang memperlakukan (B, A)
sebagai duplikat dari (A, B)
dan Anda tidak terlalu peduli apakah baris yang dikembalikan adalah (A, B)
atau (B, A)
, Anda dapat melakukan sesuatu seperti ini:
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;
Yaitu, jika BUG_ID
memiliki nilai lebih besar dari LINKED_BIG_ID
, kueri menukar dua ID, jika tidak, nilai akan dikembalikan tidak berubah. Oleh karena itu, (A, B)
dan (B, A)
selalu menghasilkan baris duplikat (keduanya berupa (A, B)
atau (B, A)
), dan DISTINCT
memastikan tidak ada hasil akhir.