• ベストアンサー

SQLでフィールドの順番を変更したい

お世話になっております。 ORACLEを使用しております。 既存のテーブルに新しいフィールドをSQL文にて ALTER TABLE TEST_MST ADD TEST_CD VARCHAR2(2); と言う風に、SQL*PLUSにて追加いたしました。 これを参照しますと、 追加したフィールドがテーブルの一番最後のフィールドに 追加されているのですが、 フィールドの順番を変更したいと考えております。 SQL文にて何か方法はございませんでしょうか。 ご返答を宜しくお願い致します。

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

  • ベストアンサー
  • MrKT
  • ベストアンサー率71% (15/21)
回答No.4

こんにちは。 すでに他の方が回答されている通り、列の順番を 変更する事はできません。 すでに作成されている表から、別表として作成する為には 以下の方法を使えば可能です。 表 table1:列 A,B,C << Cが追加したもので、順番を A,C,Bとしたい場合・・・ create table table2 as select A,C,B from table1; で、順番を変えた表を作成する事ができます。 あとは、元表を削除してリネームですね。 drop table table1; rename table2 to table1; 以上です。

o_w_nakazaki
質問者

お礼

ご回答有難うございます。 ご提示頂いた方法にて対応できそうです。 非常に参考になりました。本当に有難うございました。

その他の回答 (3)

  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.3

面倒くさいですが、SELECT文で多分「*」で取得されているのを、取得したい、項目順にコーディングすればできます。 ですが、コーディングは大変になります。

o_w_nakazaki
質問者

お礼

ご回答有難うございます。 抽出する側での対応を気付かされました。 当該事例では対応できないので、今後の参考にさせていただきます。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.2

一度、テーブルをドロップして再度クリエイトするしかないと思います。

o_w_nakazaki
質問者

お礼

ご回答有難うございます。 SQL文1文では無理があるのですね、、。

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

できなかったと思いますよ。テーブルを再作成以外は・・。

o_w_nakazaki
質問者

お礼

ご回答有難うございます。

関連するQ&A