sql >> Database >  >> RDS >> Oracle

Hoe maak je een samenvoeging van twee datasets met een select SQL-statement (Oracle DBMS)?

Roman, je moet een volledige outer join doen op je select zodat, voor een bepaald evenementtype-ID (en ik neem aan dat je 0 of 1 rij in zowel je verleden als toekomstige tabellen zult hebben voor een bepaald evenementtype-ID), u voert een enkele rij uit, en de juiste null- en niet-null-datums.

Het eerste antwoord zal de datums van de twee bronnen niet combineren in een enkele rij, en dat is waar je volgens mij om vroeg.

Het tweede antwoord was dichterbij, maar zou alleen werken voor rijen met zowel een datum in het verleden als een toekomstige datum (dwz:één in elke tabel) vanwege de inner join.

Voorbeeld:

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

Merk op dat de nvl-functie voor Oracle is en de eerste niet-null die het ziet zal gebruiken. ISNULL kan worden gebruikt voor SQL Server.



  1. Kan AWS RDS Postgres-tabel niet exporteren naar CSV in S3, met de functie aws_s3.query_export_to_s3

  2. Bij het aanroepen van DB::selecteer waarom krijg ik het bericht De verbinding is opnieuw ingesteld?

  3. Postgres-triggercontrolebedrag vóór verwijdering

  4. mysql innodb transactie gelijktijdigheid