sql >> Database teknologi >  >> RDS >> Oracle

Hvordan producerer man sammensmeltning af to datasæt med udvalgt SQL-sætning (Oracle DBMS)?

Roman, du skal lave en fuld ydre joinforbindelse på dit valg, så for enhver given begivenhedstype-id (og jeg antager, at du vil have 0 eller 1 række i både dine tidligere og fremtidige tabeller for et bestemt begivenhedstype-id), du vil udskrive en enkelt række og de relevante null- og ikke-null-datoer.

Det første svar vil ikke kombinere datoerne fra de to kilder i en enkelt række, hvilket jeg tror, ​​du bad om.

Det andet svar var tættere på, men ville kun fungere for rækker med både en tidligere og fremtidig dato (dvs. en i hver tabel) på grund af den indre sammenføjning.

Eksempel:

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

Bemærk, at nvl-funktionen er for Oracle og vil bruge den første ikke-nul, den ser. ISNULL kan bruges til SQL Server.



  1. Angiv SSL, der skal bruges til jdbc i context.xml

  2. Søg efter en værdi i databasen og få alle værdier i denne enkelte række ved hjælp af Codeigniter

  3. Hent de sidste poster ved hjælp af GROUP BY

  4. Oracle unik begrænsning og unikt indeks