sql >> Databáze >  >> RDS >> Oracle

Ignorovat redundantní hodnoty načtené z databáze

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í.



  1. Postgres UPDATE pomocí funkce okna hodnocení

  2. Problém s odesláním uživatelského jména PHP a MySQL

  3. mysql v kódování python

  4. MySQL Spojte dvě tabulky s hodnotami oddělenými čárkami