Oracle
 sql >> база данни >  >> RDS >> Oracle

Игнорирайте излишните стойности, извлечени от базата данни

Ако това е само за лечение на (B, A) като дубликат на (A, B) и не ви интересува особено дали върнатият ред ще бъде (A, B) или (B, A) , можете да направите нещо подобно:

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;

Тоест, ако BUG_ID има по-голяма стойност от LINKED_BIG_ID , заявката разменя двата идентификатора, в противен случай стойностите се връщат непроменени. Следователно (A, B) и (B, A) винаги създава дублирани редове (и двата ще бъдат или (A, B) или (B, A) ) и DISTINCT гарантира, че няма такъв в крайния резултат.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sysdate и dbtimezone са различни в Oracle Database

  2. Тип таблица в Oracle PL SQL Пример

  3. мутиране, тригер/функция може да не го види - грешка по време на изпълнение на тригер

  4. XMLAGG с проблем с RTRIM

  5. Как мога да използвам колекция в израз на Oracle SQL