• ベストアンサー

SQL文で同DB内、テーブルから別テーブルにコピー

同じデータベース内にA、Bという、ほとんど同じテーブルがあります。 異なるのは、2つの列に限り名前は同じですが、型が異なります。 その場合、その2列以外のデータはそのままコピーし、その2列には「1」という数値を設定したいです。 SQL serverでしたら、どのようなクエリになりますでしょうか? よろしくお願いします。

noname#171869
noname#171869

質問者が選んだベストアンサー

  • ベストアンサー
  • nesty7
  • ベストアンサー率53% (8/15)
回答No.1

ちょっと環境がないので動作確認まではできませんが… insert into A (columna, columnb, columnc) (select columna, 1, columnc from B) でどうでしょうか。 サブクエリのselect句で、型の違う列(この場合columnb) の部分に1を取得する方法で可能かと思うのですが…。 insert select などで検索するとわかりやすいサイトが出てくると思います。

noname#171869
質問者

お礼

ありがとうございました。

関連するQ&A

  • SQL Server2000で列のコピーってできるのでしょうか?

    AAAサーバAAデータベースAテーブル BBBサーバBBデータベースBテーブル があったとしまして、BテーブルはAテーブルのコピーでデータベースの型はまったく同じです。 Aテーブル、Bテーブル別々に更新をかけてしまった為 Bテーブルのある列(Eメール入力欄)をAテーブルの同じ場所に上書きコピーしたいのです。 つまり、AテーブルのEメール列だけをBのデータで上書きしたい。 この場合のオペレーションはどのようになるのでしょうか? おしえてください><

  • SQL-Server間でデータのコピーをしたいのですが・・失敗するんです

    大変こまっていますー 状態を説明します Aサーバ(ローカル) Bサーバ(ネットワーク:IP指定) 両方にTable025というデータベースがあり、エクスポートでテーブル事コピーした為 中身は同じ。 その中のABCMstというデータベースがあります。 Aサーバ、Bサーバ別々にABCMstにデータを追加しました。 ■やりたいこと AサーバのTable025のABCMstのABCNumが00001のものを BサーバのTable025のABCMstに追加コピーしたい ※BサーバにはABCNumが00002のものしかありません。 ■実施 (1)AサーバのTable025の上で右クリック→データのエクスポートを選択 (2)データソース元をAサーバにする(元からデータが入ってるためなにもせずに次へ) (3)変換先の選択で サーバー:BサーバのIPアドレス SQL認証にし、IDとパスワードをいれる。 データベースのコンボボックスで「abc025」を選択 次へ (4)テーブルのコピーまたはクエリの指定で「変換するデータの指定にクエリを使用」を選択 (5)SQLステートメントの入力でクエリビルダを選択 (6)列の選択で「ABCMst」をダブルクリック 次へ (7)並べ替えの指定 「>>」マークをクリックして次へ (8)クエリ条件の指定 条件に一致するのみチェックをいれる。 列:[ABCMst].[ABCNum] 演算子:= 値は、[・・・]ボタンをクリックし00001を選択する 次へ (9)SQLステートメントの入力にコマンドが入っていることを確認し、次へ (10)変換元テーブルとビューの選択は何もせずに次へ (11)すぐに実行チェックが入っていることを確認し次へ (12)完了ボタンを押下しデータコピーが始まる。 (13)データを見てみるが、00001のデータが追加されていない・・ やり方が間違っているのでしょうか? 長々と書いてしまいましたがよろしくおねがいします。

  • SQLサーバでテーブルをコピーする

    SQLサーバ超初心者です。 A支店用のテーブルを作成(dbo.data_A)したのですが B支店(dbo.data_B)、C支店用(dbo.data_C)のテーブルを作成したいです。 Accessなどのように、コピーペーストなどはできないのですよね? ご教授お願いいたします!

  • SQLサーバーのテーブルの値が更新できません

    お尋ねします。 SQLサーバー2005にDB1というデータベースにdbo_TB1というテーブルがあります。そのテーブルの特定の列の値を更新したいので、AC.mdbというアクセスのファイルにテーブルのリンクをし、更新したいファイルを用意して、アクセスのクエリでデータを更新しようとしましたところ、更新ができませんでした。  dbo_TB1を更新可能にするためには、どのようにして権限を与えればいいでしょうか。  SQLサーバー2005の知識を習得しようと学習を始めたばかりで、よく理解できていません。よろしくお願いします。

  • OracleのSQLで同テーブルのカラムをコピー

    oracle9iを使用しています。 あるテーブルに新しい列を新規追加し、そのカラムに既存列のデータをそっくりそのままコピーしたいのですが、どのようなSQLを流せばよいのでしょうか? 初心者丸出しな質問で申し訳ありませんが、ご教授頂けましたらありがたいです。 よろしくお願い致します。

  • SQL2005 クエリ文について

    どなたか教えて下さい。 SQL2005ですが、「商品マスタ」というテーブルに、「単価」という列があるのですが、この「単価」の数値を1.05倍したいです。 300⇒315のように。 どのようなクエリになるのでしょうか? 検索掛けたのですが、同様の質問が見付かりませんでした。よろしくお願いします。

  • テーブルの中身を違うテーブルへコピー

    お世話になります。 SQLについて質問があるのですが・・・。 Aというテーブルがあり、何件かデータが入っています。 そのAテーブルにフィールドを2つ新たに追加したいのです。 ALTER TABLEは使わずに、 以下の様な操作をしたいと考えております。 1:Aテーブルを違う名前に変更。  もしくはテーブルを丸々コピー。 2:テーブルBを作成。   (テーブルAのフィールドに2つフィールド追加した内容) 3:テーブルBにテーブルAの内容を丸々コピー。   その際、新規に追加した2つのフィールドには、初期値として、何かの文字or数字を入れる。 4:Aテーブルを削除 と、いう感じです。 作成はINSERT、削除はDROPを使えばいいのかなーって 思っているのですが、 テーブル名の変更や、テーブルの内容のコピーが ちょっと分かりません。 上記について、ご教授の程、よろしくお願いします。 なお、DBにはSQL Serverを使用しています。

  • アクセスのテーブルのコピー

    まったく同じ構造のアクセスのデータベースがあります。 データの内容は、違うものです。 そのテーブルの内容を一方にまとめたいのですが、 追加クエリを使うのと、テーブルのデータをコピーして 一方に貼り付けるのでは、何か、結果がことなるのでしょうか? よろしくお願いします。

  • SQL文での条件分岐

    列a,b,cから構成されるテーブルAが存在します。 これをテーブルB(列d,e)に以下の流れでコピーしたいのです。 ・a列の値 → d列 にコピー ・aの値が"1"ならば、b列の値 → e列 にコピー / "1"以外は、c列の値 → e列 にコピー としたいのですが、これをSQL文だけで書けますか? ストアドを書くのであれば、どのような感じで書けばいいのでしょうか? ヒントだけでも結構ですので、分かる方はお教えいただけますか?

  • 別のデータベースのテーブルの統合

    SQL Server 2005 Express です。 データベースにあるデータテーブルを別のデータベースに統合できますか? 統合でなくても、移動でも構いません。 よろしくお願いします。