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

Как да произведем сливане на два набора от данни с select SQL израз (СУБД на Oracle)?

Роман, трябва да направите пълно външно свързване на избраното от вас, така че за всеки даден идентификатор на тип събитие (и аз предполагам, че ще имате 0 или 1 ред както в минали, така и в бъдещи таблици за всеки конкретен идентификатор на тип събитие), ще изведете един ред и съответните нулеви и ненулеви дати.

Първият отговор няма да комбинира датите от двата източника в един ред, което според мен поискахте.

Вторият отговор беше по-близък, но щеше да работи само за редове с минала и бъдеща дата (т.е.:по един във всяка таблица) поради вътрешното съединение.

Пример:

insert into event_target (event_type_id, past_event_date, future_event_date)
select nvl(p.event_type_id, f.event_type_id), p.event_date, f.event_date
from
events_source_1 p full outer join
events_source_2 f on p.event_type_id = f.event_type_id

Обърнете внимание, че функцията nvl е за Oracle и ще използва първото различно от нула, което види. ISNULL може да се използва за SQL Server.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle PL/SQL:Създайте DML пакет онлайн

  2. Oracle SQL израз на заявка и условия с времеви отпечатъци и ISO дати

  3. Промяна на таблицата за наблюдение в Oracle

  4. Как да стартирате sql скриптове от pl sql процедура

  5. ORA-00942:таблица или изглед не съществува (работи, когато е отделен sql, но не работи във функция на oracle)