sql >> データベース >  >> RDS >> Oracle

select SQLステートメント(Oracle DBMS)を使用して2つのデータセットのマージを生成するにはどうすればよいですか?

    ローマン、あなたはあなたの選択で完全な外部結合を行う必要があります。そうすれば、与えられたイベントタイプIDに対して(そして私はあなたが特定のイベントタイプIDの過去と未来のテーブルの両方に0または1行を持っていると仮定しています)、単一の行と、適切なnullおよびnull以外の日付を出力します。

    最初の答えは、2つのソースからの日付を1つの行に結合しません。これは、あなたが求めていたと私が信じていることです。

    2番目の答えはより近いものでしたが、内部結合のため、過去と未来の両方の日付(つまり、各テーブルに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用であり、最初に検出されたnull以外を使用することに注意してください。 SQLServerにはISNULLを使用できます。



    1. 複数列の名前検索MySQL

    2. PHP/MySQL-最高評価のアルゴリズム

    3. cmdでpgslバックアップを復元するためのpsqlエラー

    4. SQLで数値列の最大値を見つける方法