2016-07-24 6 views
-1

例えば私のテーブルにはドメインと電子メールの列があり、この電子メール列のようなデータには[email protected]があり、ドメイン列にはwww.something.comがあります。これは可能であればドメイン列名を電子メールの名前に変更したいまたはoracleの列名を交換する方法について、表に2つの列がある場合は、

+1

サンプルデータを提供し、それに沿って説明してください。 – TheGameiswar

+0

よろしくお願いしました。私は助けてくれました – sada

+0

いいえ、もっと明示する必要があります。あなたのテーブル構造を表示し、2〜3種類のサンプルレコードを表示し、*同じものを*表示します。 –

答えて

4
ALTER TABLE your_table RENAME COLUMN email TO email_temp; 
ALTER TABLE your_table RENAME COLUMN domain TO email; 
ALTER TABLE your_table RENAME COLUMN email_temp TO domain; 
+0

SQL> create table hello(ドメイン番号(9)、電子メール番号(8)); テーブルが作成されました。 SQL> alter table hello列ドメインを電子メールにリネームする。 ALTER TABLEは、ハローライン1で * ERRORを電子メールで送信するために、列ドメインの名前を変更: ORA-00957:列名」 – sada

+0

雅を複製 - 私が最初にemail_temp'、その後、残りの 'に' email'を変更するために実行する理由があります。 –

+0

単一のクエリがある場合は? – sada

1

簡単ではありません...あなたは、単にデータを交換することで同じ効果が得られます。

UPDATE your_table SET email = domain, domain = email; 

プラス、それは1つのトランザクションで行われます。

+0

私はデータ交換を求めていません。 – sada

+0

@sada - これは論理的には同等です。つまり、*列名*の代わりに* data *をスワップして同じ**論理結果**を得ることができます。 –

+0

-suppose電子メール列に[email protected]のデータとドメイン列がありますwww.sometimes.comスワッピングを変更する意味がないとしたらどういう意味ですか? – sada

関連する問題