No.5ベストアンサー
- 回答日時:
Oracleの場合、"create table **** as select ~"
を実行すれば、検索結果に従ったテーブルを作成できます。
Oracleのユーザ"scott"で説明します。
ユーザ"scott"で以下のSelect文を実行してください。
[実行SQL文]
select dept.deptno, dept.dname, emp.empno, emp.ename
from dept, emp
where dept.deptno=emp.deptno and
dept.deptno=10;
↓
[実行結果]
DEPTNO DNAME EMPNO ENAME
------------------------------------------
10 ACCOUNTING 7782 CLARK
10 ACCOUNTING 7839 KING
10 ACCOUNTING 7934 MILLER
次に、この検索結果を元に新規にテーブルを作成するSQL文を実行します。
[実行SQL文]
create table test1 as
select dept.deptno, dept.dname, emp.empno, emp.ename
from dept, emp
where dept.deptno=emp.deptno and
dept.deptno=10;
上記のテーブルの内容を確認します。
[実行SQL文]
select * from test1;
↓
[実行結果]
DEPTNO DNAME EMPNO ENAME
------------------------------------------
10 ACCOUNTING 7782 CLARK
10 ACCOUNTING 7839 KING
10 ACCOUNTING 7934 MILLER
No.6
- 回答日時:
単純な方法ですが、以下のような方法はどうでしょうか?
・create_tableコマンドで、新しいテーブルを作成する。
・insert into 新テーブル名 select ~~ from ~~;
と新しいテーブルにデータを投入するsqlを発行する。
あまり、難しく考えないで簡単なコマンドを組み合わせで
もできるかと思います。
(注.ユーザサービス中はDBの整合性を考えるとできない
コマンドですので、サービス時間外にしてください。)
fm0606さんの質問と回答ズレてますか?
No.4
- 回答日時:
再びstorkです。
>そのテーブルの中にはvarchar型とかそういった情報とかはいらないのですか
SQLサーバーで確認したところ、もとの列のデータ型が引き継がれるようです。
列名はselect句で使用している列名がそのまま新しいテーブルの列名になります。
その他の製品については、詳しくは分かりませんがほぼ同じだと思います。
>ただ単にテーブルを作ってそのまま上の文で作れるのでしょうか?
#3の例はテーブルを作成しますので、あらかじめテーブルを作成する必要はありません。
既にテーブル名が存在する場合は、エラーになるか確認のメッセージが表示されると思います。
既に存在するテーブルに追加する場合は、oribeyakiの回答にあるようにinsert into句を使用します。
oribeyakiさんも書いてらっしゃいますがデータベースは何を使っているんですか?ものによっては製品固有の部分がひっかかるかもしれません。
この回答への補足
何度もすみません。
オラクル8iを使っています。
何度もためしているのですが、うまいこといきません。
WHEREの条件にはなにをいれればよいのですか?
前の文ではある元のテーブルの条件一つしか入ってなかったですが・・・。
お手数かけます。
No.3
- 回答日時:
例をひとつ。
select tableA.col1,
tableB.col1
into 新しいテーブル名
form tableA join tableB
on tableA.col1 = tabeleB.col1
where tableA = 'XXX'
普通にselect文を作成した後に、fromの前に「into 新しいテーブル名」を入れるだけです。
マウス操作でもっと簡単にできますが、製品ごとの固有の部分になるのでパスします。
この回答への補足
質問です。新しいテーブルと書いてあるのですが、そのテーブルの中にはvarchar型とかそういった情報とかはいらないのですか?
ただ単にテーブルを作ってそのまま上の文で作れるのでしょうか?
No.2
- 回答日時:
おはようございます。
DBが記入されてないので、代表的なところでいくつか・・・
Accessの場合
「Select 必要項目 Into 新規テーブル名 From 元テーブル1と元テーブル2のリレーション Where 条件」
の1文でできます。
Oracleの場合
2文になります。
「Create Table 新テーブル(必要項目)」
「Insert Into 新テーブル名 (入力項目) Select 必要項目 From 元テーブル1と元テーブル2のリレーション Where 条件」
こんな感じです。
実表を作る必要が無いのであれば、仮想表(Viewとかクエリー)で対応することも可能です。
また、SQL文といってもDBにより少しづつちがうので、できればDBの種類だけでも書いておいてくださいね。
何かあれば補足してください。
No.1
- 回答日時:
SELECT ~ INTO ~
こちら(参考URL)はPostgreSQLのものですが、お使いのDBMSでも使用出来るはずです。
参考URL:http://pjam.jpweb.net/pgsql-doc/ej/user/sql-sele …
この回答への補足
素人なもので、あのホームページではちょっとわかりかねます。
なにか簡単な例文を書いていただけるととてもありがたいです。お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
大量データの取得処理について
-
db2にて数値を3桁文字にて出力...
-
テーブルランナー
-
Viewにインデックスは張れ...
-
Access レコードを追加できませ...
-
データを削除しても表領域の使...
-
ORA-00959: 表領域'****'は...
-
同じSELECT文同士でのデ...
-
viewのバックアップ
-
ACCESS 複数テーブル・複数フィ...
-
postgreSQLのint型は桁数指定が...
-
異なるスキーマからデータを抽...
-
DELETE文でFROM句を省略した場合
-
datapumpの実行方法について
-
INDEXの無効化
-
検索結果の列数を動的に変更したい
-
count(1)とcount(*)の違い
-
SQLでスキーマ名(所有者名)の...
-
CLOB型へのINSERT
-
(ACCESS)複数mdbからのデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量データの取得処理について
-
db2にて数値を3桁文字にて出力...
-
PL/SQLでテーブル名に変数を使...
-
ACCESSエラー「制限されたデー...
-
列の既定値を取得したい
-
ACCESSのテーブルを毎日定刻に...
-
ACCESS2002のupdateの副問合せ...
-
SQLite C/C++ でのテーブル数...
-
Sybaseにてupdate時に特定のInd...
-
SQLServerのテーブル定義書(?...
-
Viewにインデックスは張れ...
-
データを削除しても表領域の使...
-
ORA-00959: 表領域'****'は...
-
異なるスキーマからデータを抽...
-
CLOB型へのINSERT
-
postgreSQLのint型は桁数指定が...
-
Data Pump で大量データインポ...
-
Access レコードを追加できませ...
-
INDEXの無効化
-
DELETE文でFROM句を省略した場合
おすすめ情報