※修正前の質問
INPUT_TEST_001とINPUT_TEST_002のテーブルを比較して
一致しないカラムが含まれているレコードをINPUT_TEST_003にインサートさせたいです
※修正後の質問
INPUT_TEST_001、INPUT_TEST_002、INPUT_TEST_003には同じカラムがあります。
INPUT_TEST_003とINPUT_TEST_002のカラム値を比較して、INPUT_TEST_002だけに存在するカラム値を抽出(=カラム値A)
カラム値Aと同値が含まれるINPUT_TEST_001のレコードをINPUT_TEST_003へインサートさせたい
※検証中のSQL SQL> insert into INPUT_TEST_003 2 select * 3 from INPUT_TEST_001 A 4 where not exists ( 5 select * 6 from INPUT_TEST_001 A, INPUT_TEST_002 B 7 where A.NUM = B.NUM 8 ); 0行が作成されました。 ※テーブルの情報 SQL> select count(*) from INPUT_TEST_001; COUNT(*) ---------- 10010 SQL> select count(*) from INPUT_TEST_002; COUNT(*) ---------- 10010 SQL> select count(*) from INPUT_TEST_003; COUNT(*) ---------- 0 ※一致するレコード情報 SQL> select 2 A1.BANGOU,A1.NUM,A1.STR 3 from 4 INPUT_TEST_001 A1,INPUT_TEST_002 B1 5 where 6 A1.NUM = B1.NUM; BANGOU NUM STR ---------- ---------- ---------------- 3127 67659843 ACOELDJZ 5570 87810870 TUIZGXGF ※テーブル定義は3つとも同じ 名前 NULL? 型 ----------------------------------------- -------- ---------------------------- BANGOU NOT NULL NUMBER(8) NUM NUMBER(12,2) STR CHAR(8) VARSTR VARCHAR2(8) DT DATE TIME0 TIMESTAMP(0) TIME6 TIMESTAMP(6) TIME9 TIMESTAMP(9)
想定では2レコード分がINPUT_TEST_003へインサートされるはずが失敗中です。
回答2件
あなたの回答
tips
プレビュー