0

問題は、t1 と t2 の 2 つのテーブルがあることです。t1 には 3 つの列があり、t2 にはそれぞれ 2 つの列があります。t1 には 5 つのレコードがあり、t2 には 3 つのレコードがあるとします。t2 のレコードが最後のレコードの後に​​テーブル t1 に入るように、両方のテーブルをマージまたは結合したいと考えています。T1(c1、c2、c3) および T2(c2、c3) のような列を作成できます。ここで、c2 と c3 は両方のテーブルで同じデータ型であり、c1 は主キーまたは一意のキーとして作成されます。

4

4 に答える 4

1

これにより、2つのテーブルのすべての行が返され、T1の行がT2の行の前に表示されます。

select c1, c2, c3 from t1 
union all  
select null as c1, c2, c3 from t2 
order by nvl2(c1, 0, 1) asc 

C1の値がnullでない場合、NVL2()コマンドは0を返します。これは、T1のすべての行(主キー)に当てはまり、T2のすべての行に当てはまります。テーブルの順序は任意ですが、ORDERBY句に列を追加することで修正できます。

于 2012-07-30T13:04:49.770 に答える
0

投稿を正しく理解している場合は、 table にあるレコードを table に追加t2しますt1

insert into t1 (c1, c2, c3) (select sequence_for_t1.nextval, c2, c3 from t2)
于 2012-07-30T12:07:41.090 に答える
0

あなたが使用することができます

UNION

複数のテーブルのレコードをマージする場合

于 2012-07-30T12:10:05.340 に答える