sql >> Database teknologi >  >> RDS >> Oracle

Ignorer redundante værdier hentet fra databasen

Hvis dette kun handler om at behandle (B, A) som et duplikat af (A, B) og du er ligeglad med, om den returnerede række vil være (A, B) eller (B, A) , du kunne gøre noget som dette:

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 vil sige, hvis BUG_ID har en større værdi end LINKED_BIG_ID , skifter forespørgslen de to id'er, ellers returneres værdierne uændrede. Derfor (A, B) og (B, A) producere altid duplikerede rækker (begge ville være enten (A, B) eller (B, A) ), og DISTINCT sørger for, at der ikke er nogen i det endelige resultat.



  1. TSQL - Hvordan bruger man GO inde i en BEGIN .. END blok?

  2. Får du en PHP PDO-forbindelse fra en mysql_connect()?

  3. Oprettelse af din egen TinyURL

  4. SQL Server:skal jeg bruge informationsskema-tabeller over sys-tabeller?