私は既存のテーブルをモデルにテーブルを作成しました:選択プラス値を使用してテーブルに挿入しますか?
CREATE TABLE new_table AS
(SELECT * FROM old_table WHERE record_status = 'xyz') WITH DATA;
私は、その後、カラムを追加しました:
ALTER TABLE new_table ADD new_column VARCHAR(100);
私は今、新しいテーブルに古いテーブルから複数の行を選択したいのですが、追加選択された各行の新しい列に対する固定値(例えば、'blabla'
)。
INSERT INTO new_table
SELECT *, 'blabla'
FROM old_table)
WHERE is_blabla = 'Y'
私は考えても構いませんが、構文エラーが発生しています。助言がありますか?私はTeradataを使用しています。あなただけのSELECT NEW_TABLE にあなたのテーブル
INSERTをエイリアスする必要があります。*
- デイブ
オプティマイザは、 '*'のすべてのカラムを想定しています。 Oracleは同じ方法で動作します。テーブルの別名を付けてから、 'myalias。*'を使用する必要があります。 – dnoeth
'*'の代わりに 'old_table。*'を使うか、テーブルをエイリアスにして、@dnoethを指定してエイリアスを使用してください。これは単なるTDの技術的な制限であり、論理的な制限ではありません。例えば、SQL Serverは 'select *、 'blabla''や' select *、*、* 'には何の問題もありません –