sql >> Databasteknik >  >> RDS >> Oracle

Ignorera redundanta värden som hämtats från databasen

Om det här bara handlar om att behandla (B, A) som en dubblett av (A, B) och du bryr dig inte särskilt mycket om raden som returneras kommer att vara (A, B) eller (B, A) , kan du göra något så här:

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;

Det vill säga om BUG_ID har ett större värde än LINKED_BIG_ID , byter frågan de två ID:n, annars returneras värdena oförändrade. Därför (A, B) och (B, A) producera alltid dubbletter av rader (båda skulle vara antingen (A, B) eller (B, A) ), och DISTINCT ser till att det inte finns några i slutresultatet.



  1. SQL Server bcp Utility och den numeriska datatypen

  2. MySQL och PHP Välj Alternativ med information från databasen

  3. Hur man frågar en CLOB-kolumn i Oracle

  4. php, mysql - För många anslutningar till databasfel