重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

列a,b,cから構成されるテーブルAが存在します。
これをテーブルB(列d,e)に以下の流れでコピーしたいのです。

・a列の値 → d列 にコピー
・aの値が"1"ならば、b列の値 → e列 にコピー / "1"以外は、c列の値 → e列 にコピー

としたいのですが、これをSQL文だけで書けますか?
ストアドを書くのであれば、どのような感じで書けばいいのでしょうか?

ヒントだけでも結構ですので、分かる方はお教えいただけますか?

A 回答 (3件)

SQLにはCASE式が使えます。


単純に書けば
INSERT INTO B
SELECT
a d,
(CASE WHEN A = '1' THEN b ELSE c END) e
from A ;

ORACLEであればDECODE関数で同様の処理が可能です。
    • good
    • 0
この回答へのお礼

ありがとうございました。
イメージ通りの結果が得られました。

お礼日時:2004/07/20 13:08

MSAccessであれば、


INSERT INTO テーブルB ( d, e ) SELECT a, IIf(a="1",b,c) FROM テーブルA;
と書けます。
他のSQLでもSELECTステートメントにIFやCASEなどの制御文が書ける筈です。
    • good
    • 0

使うデータベースは何ですか?SQL Serverですか?

この回答への補足

データベースはSQL Server です。

補足日時:2004/07/20 12:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

今、見られている記事はコレ!