Pokud se jedná pouze o ošetření (B, A)
jako duplikát (A, B)
a je vám úplně jedno, zda vrácený řádek bude (A, B)
nebo (B, A)
, můžete udělat něco takového:
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;
Tedy pokud BUG_ID
má větší hodnotu než LINKED_BIG_ID
, dotaz zamění dvě ID, jinak jsou hodnoty vráceny beze změny. Proto (A, B)
a (B, A)
vždy vytvářet duplicitní řádky (oba by byly buď (A, B)
nebo (B, A)
) a DISTINCT
zajišťuje, že v konečném výsledku žádný není.