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

Jak wykonać FULL OUTER JOIN w Oracle za pomocą operatora „+”?

Nie możesz (przynajmniej bezpośrednio). Oracle obsługuje tylko pełne sprzężenie zewnętrzne przy użyciu składni SQL:1999.

Możesz to sfałszować, łącząc dwa sprzężenia zewnętrzne:

select a.field1, b.field2
from table_a a, table_b b
where a.id = b.id(+)
union all 
select a.field1, b.field2
from table_a a, table b b
where a.id(+) = b.id
      and a.id is null

Jest o wiele bardziej czytelny dzięki składni SQL:1999:

select a.field1, b.field2
from table_a a full outer join table_b b
on a.id = b.id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warunek IF EXISTS nie działa z PLSQL

  2. Dane wyjściowe skryptu SQL Developer obcinają szerokość sys_refcursor

  3. sql Optimizer dla dużej tabeli Db

  4. Procedura składowana Oracle w problemie z parametrem wyjścia — rozwiązanie — błąd literówki

  5. Baza danych Oracle zezwala na nieprawidłową część czasu wartości kolumn daty i godziny w jakich okolicznościach?