検索

ホームページ  >  に質問  >  本文

列数が異なる 2 つのテーブルを結合します。

<p>2 つのテーブル (テーブル A とテーブル B) があります。 </p> <p>2 つのテーブルの列数は異なります。テーブル A の方が多くの列があると仮定します。 </p> <p>これら 2 つのテーブルをマージし、テーブル B にない列で null 値を取得するにはどうすればよいですか? </p>
P粉879517403P粉879517403532日前600

全員に返信(2)返信します

  • P粉670107661

    P粉6701076612023-08-25 17:20:32

    私はここに来て、上記の答えに従いました。しかし、データ型の順序の不一致によりエラーが発生しました。別の回答による以下の説明が役立ちます。

    上記の結果はテーブル内の列の順序と同じですか? Oracle は列の順序に非常に厳密だからです。次の例ではエラーが生成されます:

    リーリー

    ORA-01790: 式は、対応する式と同じデータ型である必要があります

    ご覧のとおり、エラーの根本原因は、列リスト指定子として * を使用することによって暗示される列の順序の不一致です。このタイプのエラーは、列リストを明示的に入力することで簡単に回避できます:

    test1_1790からcol_a、col_b、col_cを選択します すべてを結合する test2_1790からcol_a、col_b、col_cを選択します。 このエラーが発生するより一般的な状況は、SELECT リスト内の 2 つ以上の列を誤って交換 (または移動) した場合です。 リーリー

    また、上記の方法で問題が解決しない場合は、次のように列 にエイリアスを作成してみてはいかがでしょうか: (クエリはあなたのものとは異なりますが、ここでのポイントは、クエリを作成する方法です。列のエイリアス エイリアスを追加します。) リーリー

    返事
    0
  • P粉662361740

    P粉6623617402023-08-25 15:53:13

    列の少ないテーブルの場合は、次のように空の列を追加できます。

    リーリー

    返事
    0
  • キャンセル返事