3つの新しい列を追加する新しいバージョンのテーブルを作成しています。ここに私のINSERTクエリは次のとおりです。特定の条件に基づいて新しい値を挿入する
INSERT INTO test_db.new_item
SELECT A.*,'I','2010-02-01','9999-12-31' FROM db.item A WHERE ACTV_FLG = 'Y'
SELECT B.*,'U','2010-02-01',(CAST(LAST_UPD_TS AS DATE) - 1) FROM db.item B WHERE ACTV_FLG = 'N'
SELECT C.*,'D',CAST(LAST_UPD_TS AS DATE),'9999-12-31' FROM db.item C WHERE ACTV_FLG = 'N';
私は古いものを加えた私がしたい3つの新しい列と同じ列を持つ新しいテーブルを作成しました。この挿入は、既存のデータを必要な形式に変換するための一度だけのクエリです。ACTV_FLG
がY
であるかどうかを確認し、特定の値を挿入してACTV_FLG
がN
であるかどうかをチェックし、データの履歴を保持する。その特定のケースでは、元の行を保持するために、削除の現在の状態を示すコピーを作成します。
私はUNIONにしようとするとエラーになります。これらの選択ステートメントを他の方法で組み合わせることはできますか?
私はあなたがnew_itemテーブルにあるより多くの列を挿入していると仮定します。 –
いいえ、new_itemテーブルには必要なすべての新しい列がありますが、それらの列はNOT NULLなので、データでそれらを埋める必要があります。 – Saliceran
正確なエラーメッセージは何ですか?列の値は異なるデータ型ですか? –