sql >> Databasteknik >  >> RDS >> Oracle

Hur skapar man sammanslagning av två datamängder med vald SQL-sats (Oracle DBMS)?

Roman, du måste göra en fullständig yttre koppling på ditt val så att, för ett givet id för händelsetyp (och jag antar att du kommer att ha 0 eller 1 rad i både dina tidigare och framtida tabeller för ett visst id för händelsetyp), du kommer att mata ut en enda rad och lämpliga null- och icke-nulldatum.

Det första svaret kommer inte att kombinera datumen från de två källorna till en enda rad, vilket är vad jag tror att du bad om.

Det andra svaret var närmare, men skulle bara fungera för rader med både ett tidigare och ett framtida datum (dvs. ett i varje tabell) på grund av den inre kopplingen.

Exempel:

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

Observera att nvl-funktionen är för Oracle och kommer att använda den första icke-null som den ser. ISNULL kan användas för SQL Server.



  1. Hur lagrar man en dynamisk lista i MySQL-kolumnen effektivt?

  2. Vilken Java-datatyp motsvarar Oracle SQL-datatypen NUMERIC?

  3. Använda RTRIM eller REGEXP_REPLACE för att ersätta ett kommatecken med ett kommatecken och enstaka citattecken

  4. TNS Listener-fel