Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Ignoruj ​​nadmiarowe wartości pobrane z bazy danych

Jeśli chodzi tylko o traktowanie (B, A) jako duplikat (A, B) i nie obchodzi cię szczególnie, czy zwrócony wiersz będzie (A, B) lub (B, A) , możesz zrobić coś takiego:

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;

To znaczy, jeśli BUG_ID ma większą wartość niż LINKED_BIG_ID , zapytanie zamienia dwa identyfikatory, w przeciwnym razie wartości są zwracane bez zmian. Dlatego (A, B) i (B, A) zawsze twórz zduplikowane wiersze (oba byłyby albo (A, B) lub (B, A) ) i DISTINCT upewnia się, że nie ma żadnego w ostatecznym wyniku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak dodać wskaźnik AD/BC do daty w Oracle?

  2. Próba wdrożenia aplikacji Oracle-ADF na Tomcat 7

  3. Jak wyświetlić wszystkie metadane kolumn tabeli w bazie danych Oracle?

  4. PostgreSQL odpowiednik funkcji PERCENTILE_CONT Oracle

  5. Oracle automatycznie zmienia nazwy kolumn z wybierz?