2011-02-24 7 views
0

私は古いデータベースを持っています。テーブルの1つに多くのカラムがあり、というオペランドがあり、そのタイプはvarcharです。このテーブルには180,000行以上あります。 :一度に1つの列に対して多くのデータをどのように変更できますか?

first 
second 
third 
fourth 
fifth 

私は自分のテーブルを更新し、データ型をintにしました。だから、古いデータを挿入したい場合は、タイプ間で異なるため(int - string)できません。

私はループスロー表の行にいくつかの方法が必要とOPER

場合の値をチェックし、古い値と等しい「最初」の行をコピーして、1に最初に変更し、新しいテーブルにこの行を入れて

「第二」古い値と等しい場合は、行をコピーして、2に最初に変更し、新しいテーブルに

をこの行を置くというように.....

は、私はそれを行うことができます方法はありますか?

答えて

5

古いテーブルから新しいテーブルに挿入するような音がします。

INSERT INTO NewTable (Col1, Col2, Col3, Oper) --Oper is an int, right? 

    SELECT Col1, Col2, Col3, 
      CASE Oper 
       WHEN 'first' THEN 1 
       WHEN 'second' THEN 2 
       WHEN 'third' THEN 3 
       WHEN 'fourth' THEN 4 
       WHEN 'fifth' THEN 5 
      ELSE -1 END 
    FROM OldTable 
関連する問題