0

私は SQL にかなり慣れていないので、誰かが次の一般的な質問で私を助けてくれることを願っています。

1 つのストアド プロシージャを介して 3 つのことを行いたい複数の列を持つ大きなテーブルがあります。

  1. たとえば、次のようなものを使用して、英国 (GB) の国に関するすべてのデータを選択します。

    SELECT *
    FROM   XYZ_TableData
    WHERE  (countryCode LIKE 'GB')
    
  2. 上記をすべて一時テーブルにコピーし、countryCode 列の「GB」を「XX」に置き換えます。

  3. 一時テーブルからデータをコピーし、上記のテーブルに挿入します (つまり、コピーされたデータは GB ではなく XX を示します)。

ここから始めるのを手伝ってくれる人はいますか?

4

2 に答える 2

3

すべてを 1 つのステップで実行します。一時テーブルは必要ありません。

insert into mytable(field1,field2,field3,country) 
  select field1,field2,field3,'XX' As Country from mytable where country='GB'

これは、既存のレコードを更新するのではなく、テーブルに新しいレコードのセットを追加しようとしていると想定しています。私はある方法で質問を読みましたが、テレサは別の方法でそれを読みました...あなたが何を意味したかを判断する必要があると思います.

于 2013-09-24T16:43:28.513 に答える
1

なんでUPDATEしないの?

UPDATE XYZ_TableData
SET countryCode = 'XX'
WHERE countryCode = 'GB'
于 2013-09-24T16:42:47.020 に答える